如何在REST服务的请求头中设置cookie
本文关键字:设置 cookie 请求 REST 服务 | 更新日期: 2023-09-27 17:52:14
我正在开发调用REST服务的web服务,根据要求,我需要在请求头中设置cookie。即使我设置了所有内容,它也会给我"401未经授权的消息"作为响应。
var request = (HttpWebRequest)HttpWebRequest.Create("https://TESTRestAPI/service/1/sub");
request.Headers.Add("Authorization", "Basic" + Encoded);
request.Method = "GET";
request.ContentType = "application/json";
var response = (WebResponse)request.GetResponse();
So far I tried this :-
1. request.Headers["Cookie"] = "BasicAuth=fromTest";
2. request.CookieContainer = new CookieContainer();
Uri target = new Uri("https://TESTRestAPI/service/1/sub"););
Cookie ck = new Cookie("BasicAuth","fromTest") { Domain = target.Host };
这是我第一次调用REST服务,任何帮助感谢。
这段代码是通过使用基本身份验证来验证http请求,使用一些Username和Password
byte[] credentialBuffer = new UTF8Encoding().GetBytes(username + ":" + password);
string authToken = Convert.ToBase64String(credentialBuffer);
string authHeaderValue = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Basic {0}", authToken);
HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create("https://TESTRestAPI/service/1/sub");
request.Headers.Add(HttpRequestHeader.Authorization, authHeaderValue);
另外,如果要求请求包含一些cookie的名称和值,我将使用你的代码2。
CookieContainer requestCookieContainer = new CookieContainer();
Cookie requiredCookie = new Cookie("BasicAuth", "fromTest");
requiredCookie.Domain = "https://TESTRestAPI/service/1/sub";
requiredCookieContainer.Add(requiredCookie);
request.CookieContainer = requestCookieContainer;
如果您的应用程序在IIS上运行,配置文件可能需要一些行。我认为基本身份验证是默认禁用的,因为它不太安全。
<system.webServer>
<security>
<authentication>
<basicAuthentication enabled="true"/>
</authentication>
</security>
</system.webServer>