加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 无法使用RestSharp发送cookie

发布时间:2020-12-15 07:44:08 所属栏目:百科 来源:网络整理
导读:我一直在尝试使用几种不同的方法在 Windows Phone上访问基于REST的API,但我似乎遇到了将cookie附加到请求的所有问题.我已经尝试了WebClient方法(现在似乎已经标记为SecurityCritical,因此您不能再继承它并添加代码).我简要地看了一下看起来很麻烦的HttpWebRe
我一直在尝试使用几种不同的方法在 Windows Phone上访问基于REST的API,但我似乎遇到了将cookie附加到请求的所有问题.我已经尝试了WebClient方法(现在似乎已经标记为SecurityCritical,因此您不能再继承它并添加代码).我简要地看了一下看起来很麻烦的HttpWebRequest.

现在我正在使用RestSharp,它看起来很不错,但我仍然遇到问题,我的cookie在发送时没有被添加到请求中.

我的代码如下:

// ... some additional support vars ...
private RestClient client;

public ClassName() {
    client = new RestClient();
    client.BaseUrl = this.baseAddress.Scheme + "://" + baseAddress.DnsSafeHost;
}

public void GetAlbumList()
{
    Debug.WriteLine("Init GetAlbumList()");

    if (this.previousAuthToken == null || this.previousAuthToken.Length == 0) 
    {
        throw new MissingAuthTokenException();
    }

    RestRequest request = new RestRequest(this.baseUrl,Method.GET);

    // Debug prints the correct key and value,but it doesnt seem to be included
    // when I run the request
    Debug.WriteLine("Adding cookie [" + this.gallerySessionIdKey + "] = [" + this.sessionId + "]");
    request.AddParameter(this.gallerySessionIdKey,this.sessionId,ParameterType.Cookie);

    request.AddParameter("g2_controller","remote:GalleryRemote",ParameterType.GetOrPost);
    request.AddParameter("g2_form[cmd]","fetch-albums-prune",ParameterType.GetOrPost);
    request.AddParameter("g2_form[protocol_version]","2.2",ParameterType.GetOrPost);
    request.AddParameter("g2_authToken",this.previousAuthToken,ParameterType.GetOrPost);

    // Tried adding a no-cache header in case there was some funky caching going on
    request.AddHeader("cache-control","no-cache");

    client.ExecuteAsync(request,(response) =>
    {
        parseResponse(response);
    });
}

如果有人有任何关于为什么没有将cookie发送到服务器的提示,请告诉我:)我正在使用RestSharp 101.3和.Net 4.

解决方法

RestSharp 102.4似乎解决了这个问题.
request.AddParameter(_cookie_name,_cookie_value,ParameterType.Cookie);

或者,在你的情况下

request.AddParameter(this.gallerySessionIdKey,ParameterType.Cookie);

会很好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读