我将Restsharp用于我正在开发的WPF客户端。
似乎我在client.CookieContainer中没有收到任何cookie,在我成功通过服务器验证后,它总是有0个项目。
这很奇怪,因为Postman发送了相同的请求,并且我收到了一个JSESSIONID cookie,当使用Restsharp发送请求时,该cookie不存在。
public static async Task<IRestResponse> SendLogonRequest(string UID, SecureString pwd)
{
var restClient = new RestClient(new Uri(URLSRV))
{
Authenticator = new HttpBasicAuthenticator(UID, pwd.ToInsecureString()) //base64 auth;
};
restClient.CookieContainer = new CookieContainer();
var restRequest = new RestRequest(Method.POST);
restRequest.AddHeader("Accept", "application/json");
restRequest.AddHeader("Content-Type", "application/json");
var cancellationTokenSource = new CancellationTokenSource();
var restResponse = await restClient.ExecuteTaskAsync(restRequest, cancellationTokenSource.Token);
return restResponse;
}
我在帖子上看到,如果cookie有一个HttpOnly标志,它将无法正常工作。 (见:https://stackoverflow.com/a/21072840/7031019) 这对我没有帮助,因为我无法从服务器端改变任何东西。
谢谢