C# HttpWebRequest 响应错误(401)

C# HttpWebRequest response error (401)

如果我看起来好像在做傻事,请原谅。我已经尝试浏览其他堆栈溢出问题来寻找我的问题的答案,但似乎没有任何进展。

我正在开发一个 dotnet 核心 MVC 应用程序,并希望 return 从远程服务器获取一些数据。我正在使用 HttpWebRequest class.

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

如您所见,它是一个简单的 GET 请求,在 header 中传递了两个 cookie。

效果很好,return正是我所需要的。

然后我在 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();

还收到'The remote server returned an error: (401) Unauthorized'

知道我做错了什么吗?我尝试添加以下代码行以进行测试,但仍然没有成功。

request.ServerCertificateValidationCallback = delegate { return true; };

感谢所有回答。另外,正如我提到的,我不是专家,所以我可能只是在做一些愚蠢的事情!

詹姆斯

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

尝试添加:

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

Cookie 构造函数中,您将 cookie 的域设置为 "localhost",这意味着它将仅传递给对本地主机域的请求。它应该设置为您实际将请求发送到的域。