Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#错误401-用户名或密码无效_C#_Asp.net_Web Services_Rest_Http Status Code 401 - Fatal编程技术网

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

我正在尝试向API发出请求。 当我使用邮递员提出请求时,它起作用了。但在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}",
    "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命令。只要它以正确的格式看到请求,它就应该工作。这就是为什么你需要找出差异。