1
我正在嘗試向API發出請求。 當我使用郵遞員提出請求時,它可以工作。但在C#中,它不會,它會返回錯誤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);
}
}
那麼,如果它通過Postman工作,並且不能通過C#工作,那麼也許你應該使用像Fiddler這樣的工具檢查網絡流量,看看有什麼區別! – mason
我從來沒有使用過提琴手,我下載了它,但我的請求只適用於郵遞員。這兩個請求似乎是相同的。郵遞員請求:[鏈接](http://imgur.com/12sbyoX)提琴手請求:[鏈接](http://imgur.com/g5oYFC6)。你知道什麼是問題嗎?謝謝! – nill
看看原始請求。仔細比較它們。他們的服務並不關心你使用的客戶端,無論是.NET還是Fiddler或CURL命令。只要它以正確的格式看到請求,它就可以工作。這就是爲什麼你需要發現差異。 – mason