自定义请求头信息及cookie信息
请求网页的时候有时候我们需要传递一些参数信息,这个时候我们可以将参数放到请求头中,具体使用如下:
这里有小问题就是请求参数的属性名好像不支持下划线,即 HTTP_UID不可用,但是HTTP-UID就可以,使用下划线的后果就是后台服务器不会接受到这个请求参数,至少在我的项目中出现了这个问题
//WAP页面
UIViewController *web = [[UIViewController alloc]init];
UIWebView *webView = [[UIWebView alloc]initWithFrame:web.view.bounds];
[web.view addSubview:webView];
//设置请求路径
NSURL *url = [NSURL URLWithString:@"http://www.sdadksaddaskddas"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; //添加请求头信息 这个请求头名称需要和后台统一
NSMutableURLRequest *mutableRequest = [request mutableCopy]; //拷贝request
//这里我添加了HTTP_UID和HTTP_TOKEN两个请求头属性
[mutableRequest addValue:[CDUser currentUser].userId forHTTPHeaderField:@"HTTP-UID"];
[mutableRequest addValue:[CDUser currentUser].token forHTTPHeaderField:@"HTTP-TOKEN"];
request = [mutableRequest copy]; //拷贝回去
//加载url
[webView loadRequest:request];
web.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:web animated:YES];
自定义cookie
// 自定义ccokie 传值
// 定义 cookie 要设定的 host
NSURL *cookieHost = [NSURL URLWithString:@"http://www.dasdadadasd"];
NSDictionary *dic = @{@"key1":value1,@"key2":value2};
[dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
// 设定 cookie
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
[cookieHost host], NSHTTPCookieDomain,
[cookieHost path], NSHTTPCookiePath,
key,NSHTTPCookieName,
obj,NSHTTPCookieValue,
nil]];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; }]; [self.webView loadRequest:request];//加载
enumerateKeysAndObjectsUsingBlock是NSDictionary中的一个方法,它有一个参数就是block,这个block携带了三个参数,这将要把dictionary里面的key和value每次一组传递到block.
enumerateKeysAndObjectsUsingBlock会遍历dictionary并把里面所有的key和value一组一组的展示给你,每组都会执行这个block。
这其实就是传递一个block到另一个方法,在这个例子里它会带着特定参数被反复调用,直到找到一个ENOUGH的key,然后就会通过重新赋值那个BOOL *stop来停止运行,停止遍历同时停止调用block。
自定义请求头信息及cookie信息的更多相关文章
- Ajax跨域请求,无法传递及接收cookie信息解决方案
最近的项目中涉及到了应用ajax请求后台系统登录,身份认证失败,经过不断的调试终于找到解决方案. 应用场景: 项目测试环境:前端应用HTML,js,jQuery ajax请求,部署在Apache服务器 ...
- 使用 Spring RestTemplate 调用 rest 服务时自定义请求头(custom HTTP headers)
在 Spring 3.0 中可以通过 HttpEntity 对象自定义请求头信息,如: private static final String APPLICATION_PDF = "app ...
- 使用zuul实现验证自定义请求头中的token
路由:她会把外部所有对请求转发到具体的微服务实例上,是实现外部访问同一接口的基础 过滤: 就是权限的检查, 判断当前的请求是否有权限区访问那些服务集群 搭建后台网关: 导入eureka - clien ...
- ASP.NET Core - 实现Http自定义请求头策略
前言 在正常的情况下,当我们系统用到JWT认证方式时,需要在Http请求头添加Authorization: XXX,这样在后台服务的控制器中打上[Authorize]授权标签,就限定所有的请求必须通过 ...
- Ajax设置自定义请求头的两种方法
用自定义请求头token为例 方法一 $.ajax({ type: "post", url:"http://127.0.0.1:4564/bsky-app/templat ...
- Python3 自定义请求头消息headers
Python3 自定义请求头消息headers 使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设 ...
- php curl如何设置自定义请求头和打印请求头信息
$header = [ 'client:h5', 'token:test', ]; curlRequest($url, $params, true, 10, $header); PHP5.1.3版以上 ...
- http的请求头都有那些信息
每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 ...
- axios发送自定义请求头的跨域解决
前端发送来的axios请求信息 this.$axios.request({ url:'http://127.0.0.1:8001/pay/shoppingcar/', method:'post', ...
随机推荐
- Velocity - 单例还是非单例
在Velocity1.2版本以后,开发者现在又两种选择来使用Velocity引擎,单例模型(singleton model)和单独实例模型(separate instance model).这是相同的 ...
- App是什么,可以分为几类?及其相关解释。
App,是应用程序,Application的缩写,事实上,严格说来,目前市面上的APP大致可分为以下十类,即移动UGC,移动搜索,移动浏览,移动支付,移动广告,移动即时信息,SNS,LBS,AR以及 ...
- SQLBulkCopy使用
SQLBulkCopy,用于数据库之间大批量的数据传递.通常用于新,旧数据库之间数据的更新.即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来. 首先,SQLBulkCopy需要2个连 ...
- 浏览器中显示视频,flash等的代码处理
window.flashView=function(flash_url){ var html=''; html+='<div id="obj_flash_div">'; ...
- algorithm@ find kth smallest element in two sorted arrays (O(log n time)
The trivial way, O(m + n): Merge both arrays and the k-th smallest element could be accessed directl ...
- CentOS 5.6 安装Oracle Java 和 Eclipse
1.卸载原有OpenJDK 1. 使用java -version查看当前Java版本信息 2. 使用rpm -qa | grep java 列出所有被安装的java rpm package ...
- BNUOJ-26579 Bread Sorting YY
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26579 考虑两个性质:蚂蚁的相对位置不变,蚂蚁碰撞时相当于对穿而过,然后排两次序就可以了. ...
- jqgrid 设置单元格编辑/不可编辑
首先设置不可编辑,如下代码: $(', 'not-editable-cell'); 在单元格上设置一个'not-editable-cell'就可以了,如果需要设置为可编辑,那么可以使用下面的代码: f ...
- BroadcastReceiver学习笔记
1.在代码中注册与在AndroiManifest.xml注册的区别 (a)在代码中注册可以控制注册与注销的时间.比如在onCreate-onDestory, onStart-onStop, onRes ...
- nyoj 448 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...