当前位置: 移动技术网 > IT编程>移动开发>IOS > IOS 网络请求中设置cookie

IOS 网络请求中设置cookie

2019年07月24日  | 移动技术网IT编程  | 我要评论

文登聊天室,逼上枝头,电热丝

ios 网络请求中设置cookie

1. asihttprequest

asihttprequest 是一款极其强劲的 http 访问开源项目。让简单的 api 完成复杂的功能,如:异步请求,队列请求,gzip 压缩,缓存,断点续传,进度跟踪,上传文件,http 认证。

cookie的支持

    如果 cookie 存在的话,会把这些信息放在 nshttpcookiestorage 容器中共享,并供下次使用。你可以用 [ asihttprequest setsessioncookies:nil ] ; 清空所有 cookies。当然,你也可以取消默认的cookie策略,而使自定义的cookie:

-(nsmutablearray*)retruncookies{ 
  nsdictionary *properties = [[[nsmutabledictionary alloc] init] autorelease]; 
  [properties setvalue:[loginviewcontroller getlanguagetype:logininfo.lang] forkey:nshttpcookievalue]; 
  [properties setvalue:@"bengguru.gaia.culture_code" forkey:nshttpcookiename]; 
  [properties setvalue:@"" forkey:nshttpcookiedomain]; 
  [properties setvalue:[nsdate datewithtimeintervalsincenow:60*60] forkey:nshttpcookieexpires]; 
  [properties setvalue:@"" forkey:nshttpcookiepath]; 
  nshttpcookie *cookie = [[[nshttpcookie alloc] initwithproperties:properties] autorelease]; 
  return [nsmutablearray arraywithobject:cookie]; 
}
[request setrequestcookies:[self retruncookies]];         //发送cookies,根据用户的选择,返回相应语言。

2.  nsmutableurlrequest(可以用于webview)

nsdictionary *properties = [[[nsmutabledictionary alloc] init] autorelease]; 
      [properties setvalue:userid forkey:nshttpcookievalue]; 
      [properties setvalue:@"benqguru.gaia.userid" forkey:nshttpcookiename]; 
      [properties setvalue:@"" forkey:nshttpcookiedomain]; 
      [properties setvalue:[nsdate datewithtimeintervalsincenow:60*60] forkey:nshttpcookieexpires]; 
      [properties setvalue:@"/" forkey:nshttpcookiepath]; 
      nshttpcookie *cookie = [[[nshttpcookie alloc] initwithproperties:properties] autorelease]; 
      nsdictionary *properties1 = [[[nsmutabledictionary alloc] init] autorelease]; 
      [properties1 setvalue:[loginviewcontroller getlanguagetype:logininfo.lang] forkey:nshttpcookievalue]; 
      [properties1 setvalue:@"bengguru.gaia.culture_code" forkey:nshttpcookiename]; 
      [properties1 setvalue:@"" forkey:nshttpcookiedomain]; 
      [properties1 setvalue:[nsdate datewithtimeintervalsincenow:60*60] forkey:nshttpcookieexpires]; 
      [properties1 setvalue:@"/" forkey:nshttpcookiepath]; 
      nshttpcookie *cookie1 = [[[nshttpcookie alloc] initwithproperties:properties1] autorelease]; 
      nsarray *cookies=[nsarray arraywithobjects:cookie,cookie1,nil]; 
      nsdictionary *headers=[nshttpcookie requestheaderfieldswithcookies:cookies]; 
      nsmutableurlrequest *request=[nsmutableurlrequest requestwithurl:[nsurl urlwithstring:[object valueforkey:@"url"]]]; 
      [request setvalue:[headers objectforkey:@"cookie"] forhttpheaderfield:@"cookie"]; 
      [webview loadrequest:request]; 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网