http:get&post方法
来源:互联网 发布:网站源码上传教程 编辑:程序博客网 时间:2024/06/05 00:44
在http请求中有两个非常重要的header,分别是get和post。对于百度这类的服务器访问,不需要传递什么参数,方便快捷迅速的访问,大多用的是get。而需要输入账号密码或者传递信息(图片等)的时候,采用的则是post请求。
(一)get:
get请求可以被缓存。get请求时输入的数据是会显示在“网址”上的,通常?后面键值的方式追加参数,多个参数由&连接。并且参数一般不会有中文,如果有中文,则需要进行添加百分号转义。str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];在http协议中,没有明确的规定get的长度。不过根据浏览器不同,一般都在2-8k之间。
- (void)get{ NSString *str = @"http://127.0.0.1/login.php?username=zhangsan&password=zhang"; str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:str]; NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:10.0]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@",dict); }]; }
(二)post:
post多为向服务器发送一些重要数据,效率不如get,并且无法被缓存。例如提交加密后的账号密码或者一些其他数据。提交数据的大小依照服务器的规则。post的参数是单独由一个请求体包裹着。发送到服务器后服务器根据请求体来选择传递的数据(请求体是二进制数据)。
- (void)post{ NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/login.php"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:10.0]; request.HTTPMethod = @"post"; request.HTTPBody = [@"username=zhangsan&password=zhang" dataUsingEncoding:NSUTF8StringEncoding]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@",dict); }]; }
(三)百度进行一次请求:
粘贴地址后发现是这样的
https://www.baidu.com/s?wd=%E6%88%91%E7%9A%84%20%E4%B8%96%E7%95%8C
这是因为get方法自己是ASC的,对中文进行转义了。其中20%就是一个特殊的空格转义字符。
然后监视下这一次百度的请求:
在响应头中
这个tyoe就是遵守的编码和一些规则。
在请求头中
user-agent显示着当前接收的设备,编号。如果改成手机端,那么百度则显示的是m百度的手机样式。
(四)服务器发送post请求
可以看到解析是json,编码是utf-8
并且此时还有一个请求体:
在json中还能看到解析结果:(json对应的键值对)
- Http方法 GET/POST
- http:get&post方法
- HTTP 方法:GET 对比 POST
- HTTP方法:GET对比POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP GET/POST方法对比
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- HTTP 方法:GET 对比 POST
- android:windowSoftInputMode属性使用
- 类和对象
- 二分图的一些基本概念
- 用项目管理的思维过生活-【不懂项目管理,还敢拼职场】书评
- hibernate的load()和get()的区别
- http:get&post方法
- iOS--学习博客
- [经典排序算法][集锦]
- cuda教程
- 谷歌官方建议笔记——ANR、JNI
- BMI指数
- Bahosain and Digits
- android library使用方法
- ios 动画