C#HttpWebRequest响应错误(401)

时间:2017-10-04 18:11:04

标签: c# cookies .net-core httpwebrequest httpwebresponse

如果我看起来好像我在这里做了些蠢事,请原谅。我已经尝试浏览其他堆栈溢出问题以获得我的问题的答案,但似乎没有到达任何地方。

我正在开发一个dotnet核心MVC应用程序,并希望从远程服务器返回一些数据。我正在使用HttpWebRequest类。

在Fiddler中,我使用作曲家执行了以下操作。

enter image description here

正如您所看到的那样,一个简单的GET请求,标题中传递了两个cookie。

这很有效,并且正是我所需要的。

然后我在dotnet世界中撰写我的请求如下:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

 request.CookieContainer = new CookieContainer();

 request.CookieContainer.Add(new Cookie("name", "value", "/", "localhost"));

(不包括用于提问的第二个cookie)

然后我打电话给:

var httpResponse = (HttpWebResponse)request.GetResponse();

然而接收'远程服务器返回错误:(401)未经授权'

我在这里做错了什么想法?我尝试添加以下代码行用于测试目的,但仍然没有运气。

request.ServerCertificateValidationCallback = delegate { return true; };

所有答案都表示赞赏。另外,正如我所提到的,我不是专家,所以我可能只是做些蠢事!

詹姆斯

2 个答案:

答案 0 :(得分:2)

我认为您的请求默认为POST,但您的Fiddler示例正在进行GET。

尝试添加:

            request.Method = "GET";
            request.ContentType = "text/xml; encoding='utf-8'";

答案 1 :(得分:1)

Cookie构造函数中,您将cookie的域设置为“localhost”,这意味着它只会被传递给localhost域的请求。它应该设置为您实际发送请求的域。