1
Я пытаюсь сделать запросы к API. Когда я сделал запрос, используя почтальон, он работает. Но в C# это не так, он возвращает Error 401. Я проверил и логин и пароль правильные. Может ли кто-нибудь мне помочь?C# Ошибка 401 - Неверное имя пользователя или пароль
Код:
public JsonResult Test()
{
var document = new HtmlAgilityPack.HtmlDocument();
var password = CalculateMD5Hash("******");
var httpRequest =(HttpWebRequest)WebRequest.Create(string.Format("https://api.akna.com.br/emkt/int/integracao.php?User={0}&Pass={1}&XML={2}",
"[email protected]",
password,
@"<main>
<emkt trans='19.10'>
<datainicial>2016-07-01 10:00:00</datainicial>
<datafinal>2016-07-02 10:00:00</datafinal>
</emkt>
</main>"));
httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";
try
{
var httpWebResponse = (HttpWebResponse)httpRequest.GetResponse();
var responseStream = httpWebResponse.GetResponseStream();
if (responseStream != null)
{
var sr = new StreamReader(responseStream, Encoding.Default);
document.LoadHtml(sr.ReadToEnd());
}
return Json(new { StatusCode = 200 }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { StatusCode = 500, Erro = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
Ну, если он работает через почтовый оператор и не работает через C#, то, возможно, вам стоит проверить сетевой трафик с помощью инструмента, такого как Fiddler, и посмотреть, какая разница! – mason
Я никогда не использовал Fiddler, я загрузил его, но моя просьба работает только в почтальоне. Эти два запроса кажутся одинаковыми. Запрос почтальона: [ссылка] (http://imgur.com/12sbyoX) Запрос Fiddler: [ссылка] (http://imgur.com/g5oYFC6). Вы знаете, в чем проблема? Благодаря! – nill
Посмотрите на необработанный запрос. Сравните их внимательно. Их службе не важно, какой клиент вы используете, будь то .NET или Fiddler или команда CURL. Пока он видит запрос в правильном формате, он должен работать. Вот почему вам нужно определить разницу. – mason