C#错误401-用户名或密码无效
我正在尝试向API发出请求。 当我使用邮递员提出请求时,它起作用了。但在c#中,它没有,它返回错误401。 我检查过了,登录名和密码都正确。 有人能帮我吗C#错误401-用户名或密码无效,c#,asp.net,web-services,rest,http-status-code-401,C#,Asp.net,Web Services,Rest,Http Status Code 401,我正在尝试向API发出请求。 当我使用邮递员提出请求时,它起作用了。但在c#中,它没有,它返回错误401。 我检查过了,登录名和密码都正确。 有人能帮我吗 代码: public JsonResult Test() { var document = new HtmlAgilityPack.HtmlDocument(); var password = CalculateMD5Hash("******"); var httpRequest =(HttpWebRequest
代码:
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}",
"mail@mail.com",
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);
}
}
publicjsonresult测试()
{
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}“,
"mail@mail.com",
密码,
@"
2016-07-01 10:00:00
2016-07-02 10:00:00
"));
httpRequest.Method=“POST”;
httpRequest.ContentType=“application/x-www-form-urlencoded”;
尝试
{
var httpWebResponse=(httpWebResponse)httpRequest.GetResponse();
var responseStream=httpWebResponse.GetResponseStream();
if(responseStream!=null)
{
var sr=新的StreamReader(responseStream,Encoding.Default);
document.LoadHtml(sr.ReadToEnd());
}
返回Json(新的{StatusCode=200},JsonRequestBehavior.AllowGet);
}
捕获(例外情况除外)
{
返回Json(新的{StatusCode=500,Erro=ex.Message},JsonRequestBehavior.AllowGet);
}
}
问题在于参数的编码。它解决了问题:问题是参数的编码。它解决了这个问题:如果它通过邮递员工作,而不通过C#工作,那么也许你应该用Fiddler之类的工具检查网络流量,看看有什么区别!我从未使用过Fiddler,我下载了它,但我的请求只适用于postman。这两个要求似乎是相同的。邮递员请求:小提琴手请求:。你知道有什么问题吗?谢谢看看原始请求。仔细比较。他们的服务不关心您使用的客户端是什么,无论是.NET、Fiddler还是CURL命令。只要它以正确的格式看到请求,它就应该工作。这就是为什么你需要找出差异。如果它通过邮递员工作,而通过C#不工作,那么也许你应该用Fiddler之类的工具检查网络流量,看看有什么区别!我从未使用过Fiddler,我下载了它,但我的请求只适用于postman。这两个要求似乎是相同的。邮递员请求:小提琴手请求:。你知道有什么问题吗?谢谢看看原始请求。仔细比较。他们的服务不关心您使用的客户端是什么,无论是.NET、Fiddler还是CURL命令。只要它以正确的格式看到请求,它就应该工作。这就是为什么你需要找出差异。