如果我看起来好像我在这里做了些蠢事,请原谅。我已经尝试浏览其他堆栈溢出问题以获得我的问题的答案,但似乎没有到达任何地方。
我正在开发一个dotnet核心MVC应用程序,并希望从远程服务器返回一些数据。我正在使用HttpWebRequest类。
在Fiddler中,我使用作曲家执行了以下操作。
正如您所看到的那样,一个简单的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; };
所有答案都表示赞赏。另外,正如我所提到的,我不是专家,所以我可能只是做些蠢事!
詹姆斯
答案 0 :(得分:2)
我认为您的请求默认为POST,但您的Fiddler示例正在进行GET。
尝试添加:
request.Method = "GET";
request.ContentType = "text/xml; encoding='utf-8'";
答案 1 :(得分:1)
在Cookie
构造函数中,您将cookie的域设置为“localhost”,这意味着它只会被传递给localhost域的请求。它应该设置为您实际发送请求的域。