2016-08-01 3 views
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); 
} 
} 
+0

Ну, если он работает через почтовый оператор и не работает через C#, то, возможно, вам стоит проверить сетевой трафик с помощью инструмента, такого как Fiddler, и посмотреть, какая разница! – mason

+0

Я никогда не использовал Fiddler, я загрузил его, но моя просьба работает только в почтальоне. Эти два запроса кажутся одинаковыми. Запрос почтальона: [ссылка] (http://imgur.com/12sbyoX) Запрос Fiddler: [ссылка] (http://imgur.com/g5oYFC6). Вы знаете, в чем проблема? Благодаря! – nill

+0

Посмотрите на необработанный запрос. Сравните их внимательно. Их службе не важно, какой клиент вы используете, будь то .NET или Fiddler или команда CURL. Пока он видит запрос в правильном формате, он должен работать. Вот почему вам нужно определить разницу. – mason

ответ