- 浏览: 89282 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
ma_029619:
的确,打不开
用 UITableView 进行多选的代码例子 -
janedoneway:
不错,学习了,同时问一下,动画结束后同时隐藏图片,要怎么做?你 ...
[iOS]iPhoto的删除动画(转) -
cn23snyga:
博主的POST方法2.1中,怎么是 setHTTPMethod ...
[iOS]网络编程专题:发送Http请求(POST GET)的方法 -
bear1122ccc:
文件坏了。
用 UITableView 进行多选的代码例子
首先说说一下http请求
http请求最长用的方法是 get 和 post 方法
get方法和post方法相比理解起来比较简单,get方法可以直接请求一个url,也可以url后面拼接上参数作为一个新的url地址进行请求。form的enctype属性默认为application/x-www-form-urlencoded。不能发送二进制文件。
post方法相对要复杂一些。首先post方法要设置key和value ,所有的key和value都会拼接成 key1=value1&key2=value2的样式的字符串,然后这个字符串转化为二进制放到 http请求的body中。当请求发送的时候,也就跟随body一起传给服务器。http请求求Content-Type设置为:application/x-www-form-urlencoded。这里讲的只是简单的post请求,一般发送文件不会选择这种方式(从技术方面考虑也可以发送文件,就是把文件以 ke 和 value的方式放入)。下面我们再讨论一下post发送二进制文件更加普遍的方法。
post发送文件首先网页中的form的enctype设置为multipart/form-data,然后浏览器会把表单中需要提交的项目分隔,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
如果有以下form,并选择了file1.txt上传
//作者:禚来强 电话:XXXXXX email:zhuolaiqiang@gmail.com
//原问地址: http://blog.csdn.net/diyagoanyhacker/article/details/6685398
<form action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
<input type="text" name="submit-name" value="chmod777"><br />
What files are you sending? <input type="file" name="files"><br />
</form>
则有如下body:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
chmod777
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
以上重点讲解的post请求的两种方式。如果还是不明白可以和我一起讨论。
发送Http请求(POST GET)的方法
我们知道Http有Get和Post两种方法,我们分开说吧.
另注: 今天讲的方法是同步的请求, 异步的方法我还没试过, 不知道有没有使用异步的需求, 有的话于发上来和大家分享.
1.Get方法
1.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURLURLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequestnew];
[requestsetURL:url];
[requestsetHTTPMethod:@"GET"];
NSHTTPURLRequest*response;
NSData* data = [NSURLConnectionsendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet = [[NSString alloc] initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRetrelease];
NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequest new];
[request setURL:url];
[request setHTTPMethod:@"GET"];
NSHTTPURLRequest* response;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet = [[NSString alloc] initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRetrelease];
1.2 使用NSString
view plaincopy to clipboardprint?
/ options有两个枚举,NSMappedRead这个不懂,NSUncachedRead是不缓存
[NSData dataWithContentsOfURL:(NSURL*)url
options:(NSUInteger)readOptionsMask
error:(NSError**)errorPtr]
// 或者
[NSData dataWithContentsOfURL:(NSURL*)url];
/ options有两个枚举,NSMappedRead这个不懂, NSUncachedRead是不缓存
[NSData dataWithContentsOfURL:(NSURL *)url
options:(NSUInteger)readOptionsMask
error:(NSError**)errorPtr]
// 或者
[NSData dataWithContentsOfURL:(NSURL*)url];
1.2和1.3的方法是缺点是没办法知道response的status,一般是返回200-299之间的数值代表请求成功.我们可以依照这个code来做数据处理,如果对地址存在很有把握,就可以使用后两种简单的GET方法.
今天查了一下手册,发现NSArray NSDictionary 也有xxxxWithContentsOfURL的方法,这两个我还没用过, 应该是跟NSData和NSString一样,但具体怎么用我还不清楚.
2.Post方法
2.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURLURLWithString:@"http://aminby.net"];
NSMutableURLRequest* request= [NSMutableURLRequestnew];
[requestsetURL:url];
[request setHTTPMethod:@"GET"];
[request addValue:@"application/json"forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:@"someparam"];
NSHTTPURLRequest*response;
NSData* data= [NSURLConnectionsendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet= [[NSString alloc]initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRet release];
http请求最长用的方法是 get 和 post 方法
get方法和post方法相比理解起来比较简单,get方法可以直接请求一个url,也可以url后面拼接上参数作为一个新的url地址进行请求。form的enctype属性默认为application/x-www-form-urlencoded。不能发送二进制文件。
post方法相对要复杂一些。首先post方法要设置key和value ,所有的key和value都会拼接成 key1=value1&key2=value2的样式的字符串,然后这个字符串转化为二进制放到 http请求的body中。当请求发送的时候,也就跟随body一起传给服务器。http请求求Content-Type设置为:application/x-www-form-urlencoded。这里讲的只是简单的post请求,一般发送文件不会选择这种方式(从技术方面考虑也可以发送文件,就是把文件以 ke 和 value的方式放入)。下面我们再讨论一下post发送二进制文件更加普遍的方法。
post发送文件首先网页中的form的enctype设置为multipart/form-data,然后浏览器会把表单中需要提交的项目分隔,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
如果有以下form,并选择了file1.txt上传
//作者:禚来强 电话:XXXXXX email:zhuolaiqiang@gmail.com
//原问地址: http://blog.csdn.net/diyagoanyhacker/article/details/6685398
<form action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
<input type="text" name="submit-name" value="chmod777"><br />
What files are you sending? <input type="file" name="files"><br />
</form>
则有如下body:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
chmod777
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
以上重点讲解的post请求的两种方式。如果还是不明白可以和我一起讨论。
发送Http请求(POST GET)的方法
我们知道Http有Get和Post两种方法,我们分开说吧.
另注: 今天讲的方法是同步的请求, 异步的方法我还没试过, 不知道有没有使用异步的需求, 有的话于发上来和大家分享.
1.Get方法
1.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURLURLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequestnew];
[requestsetURL:url];
[requestsetHTTPMethod:@"GET"];
NSHTTPURLRequest*response;
NSData* data = [NSURLConnectionsendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet = [[NSString alloc] initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRetrelease];
NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequest new];
[request setURL:url];
[request setHTTPMethod:@"GET"];
NSHTTPURLRequest* response;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet = [[NSString alloc] initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRetrelease];
1.2 使用NSString
view plaincopy to clipboardprint?
/ options有两个枚举,NSMappedRead这个不懂,NSUncachedRead是不缓存
[NSData dataWithContentsOfURL:(NSURL*)url
options:(NSUInteger)readOptionsMask
error:(NSError**)errorPtr]
// 或者
[NSData dataWithContentsOfURL:(NSURL*)url];
/ options有两个枚举,NSMappedRead这个不懂, NSUncachedRead是不缓存
[NSData dataWithContentsOfURL:(NSURL *)url
options:(NSUInteger)readOptionsMask
error:(NSError**)errorPtr]
// 或者
[NSData dataWithContentsOfURL:(NSURL*)url];
1.2和1.3的方法是缺点是没办法知道response的status,一般是返回200-299之间的数值代表请求成功.我们可以依照这个code来做数据处理,如果对地址存在很有把握,就可以使用后两种简单的GET方法.
今天查了一下手册,发现NSArray NSDictionary 也有xxxxWithContentsOfURL的方法,这两个我还没用过, 应该是跟NSData和NSString一样,但具体怎么用我还不清楚.
2.Post方法
2.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURLURLWithString:@"http://aminby.net"];
NSMutableURLRequest* request= [NSMutableURLRequestnew];
[requestsetURL:url];
[request setHTTPMethod:@"GET"];
[request addValue:@"application/json"forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:@"someparam"];
NSHTTPURLRequest*response;
NSData* data= [NSURLConnectionsendSynchronousRequest:request
returningResponse:&responseerror:nil];
[NSString* strRet= [[NSString alloc]initWithData:dataencoding:NSUTF8String];
NSLog(strRet);
[strRet release];
评论
1 楼
cn23snyga
2012-06-12
博主的POST方法2.1中,怎么是 setHTTPMethod:@"GET",这明显不是POST 吧,这个很明显能看出来的地方还可以理解,但是就不知道,博主,还会不会在其它地方埋下地雷呢?让我这样的小白,情何以堪a a a a a ....
发表评论
-
[iOS]iPhoto的删除动画(转)
2012-03-05 09:36 3100iPhoto 中想删除某张照片时,点击删除键,就能看到照 ... -
testBubble_泡泡聊天
2012-02-29 11:38 1102testBubble_zhou_min_泡泡聊天 ... -
BigHeadTip_谷歌地图大头针
2012-02-29 11:34 1575BigHeadTip_zhou_min_谷歌地图大头针 ... -
FFDownloadManager_alertview文件下载器
2012-02-29 11:28 1009FFDownloadManager_zhou_min_aler ... -
苹果官网--iPhone应用程序编程指南
2012-02-29 11:21 970苹果官网-zhou_min-iPhone应用程序编程指南 ... -
iOS之GCD
2012-02-12 21:35 0GCD之dispatch queue iOS中 ... -
循环滚动
2012-02-02 15:19 0循环滚动 -
自定义AlertView(多种色彩)
2012-02-02 14:50 1115自定义AlertView(多种色彩) ... -
用 UITableView 进行多选的代码例子
2012-02-02 14:19 1530用 UITableView 进行多选的代码例子 ... -
QQ风格的UITableView
2012-02-02 14:00 1248QQ风格的UITableView ... -
GLpaint画图
2012-02-01 23:50 1798GLpaint画图 -
滑动弹出菜单的代码例子
2012-02-01 23:31 1124滑动弹出菜单的代码例子可在应用中实现方便美观的按钮收放效果。如 ... -
UIAlertTableView 里进行单选和多选的代码例子
2012-02-01 23:22 1026UIAlertTableView 里进行单选和多选的代码例子 ... -
自定义控件用法和一些常用页面效果
2012-02-01 22:23 972自定义控件用法和一些常用页面效果 原文:http:// ... -
viewDidUnload 和 dealloc 的区别
2012-01-30 10:57 7396对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程 ... -
第二个iPhone应用程序:“Say Hello”
2012-01-30 10:49 1252项目需求 写一个iPhone应用程序,要求可以输入名字, ... -
[iOS]网页保存为png
2012-01-20 10:48 0保存 -
[iOS]iOS截屏
2012-01-19 17:22 2688UIGraphicsBeginImageContext ... -
[iOS]iOS对PDF加密,解密
2012-01-16 17:34 3114保护PDF内容为了保护PDF ... -
[iOS]AES加密在iOS上面的实现
2012-01-16 13:38 9097Encryption.h文件 // // En ...
相关推荐
通过阅读本书,你将学习 Swift 面向对象的概念、理解如何使用 Apple 的开发工具,以及探索 Cocoa 是如何提供 iOS 应用所需的底层功能的。
iOS网络高级编程 iPhone和iPad的企业应用开发 [(美)考克斯PDF电子书下载 带书签目录 高清完整版
iOS网络高级编程 iPhone和iPad的企业应用开发--高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
iOS编程基础:Swift、Xcode和Cocoa入门指南.pdf
IOS网络编程与云端应用 关东升著
《iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、WebService、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、以及社交网络...
IOS网络请求中的get同步,post同步
关于iOS之同步请求、异步请求、GET请求、POST请求的解释与代码事例
《清华开发者书库:iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook...
ios同步、异步、get与post请求的简单介绍
iOS网络高级编程 iPhone和iPad的企业应用开发 PDF 高清版
iOS 网络编程 完整 积分超低 全面 请来这里下载 多谢支持
很好的ios网络编程教程,很难找到的,里面包含了多线程网络编程的一些教程
iOS网络高级编程 iPhone和iPad的企业应用开发
iOS编程基础:Swift、Xcode和Cocoa入门指南 (O’Reilly精品图书系列) iOS编程基础:Swift、Xcode和Cocoa入门指南 (O’Reilly精品图书系列) iOS编程基础:Swift、Xcode和Cocoa入门指南 (O’Reilly精品图书系列)
ios POST请求
1.基于AFNetworking3.1.0封装的GET,POST请求.支持简单的图片上传和其他资源下载. 2.代码中有常用分类,为了避免分类方法重命名都已相应加上前缀. 3.代码中有常用宏定义. 4.分类和宏定义中有很多强大及方便的快捷...
通过对各位技术大牛博客的学习,自己试着做了一个post同步和异步的网络请求封装类,具体解析还没有写进去,不过简单的网络请求是够用了,其中肯定会有很多不合适的地方,慢慢学习慢慢完善。 1.工程中导入...
对于 WKWebView 中发出的网络请求也无能为力`,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView 对应的 WKNavigationDelegate,并在代理方法中获取请求。 应用场景: 1、 自定义请求头的...