欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS 网络请求中设置cookie

程序员文章站 2023-12-19 13:37:04
ios 网络请求中设置cookie 1. asihttprequest asihttprequest 是一款极其强劲的 http 访问开源项目。让简单的 api 完...

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]; 

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

上一篇:

下一篇: