- 浏览: 91768 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
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 3191iPhoto 中想删除某张照片时,点击删除键,就能看到照 ... -
testBubble_泡泡聊天
2012-02-29 11:38 1155testBubble_zhou_min_泡泡聊天 ... -
BigHeadTip_谷歌地图大头针
2012-02-29 11:34 1641BigHeadTip_zhou_min_谷歌地图大头针 ... -
FFDownloadManager_alertview文件下载器
2012-02-29 11:28 1074FFDownloadManager_zhou_min_aler ... -
苹果官网--iPhone应用程序编程指南
2012-02-29 11:21 1030苹果官网-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 1166自定义AlertView(多种色彩) ... -
用 UITableView 进行多选的代码例子
2012-02-02 14:19 1620用 UITableView 进行多选的代码例子 ... -
QQ风格的UITableView
2012-02-02 14:00 1321QQ风格的UITableView ... -
GLpaint画图
2012-02-01 23:50 1854GLpaint画图 -
滑动弹出菜单的代码例子
2012-02-01 23:31 1212滑动弹出菜单的代码例子可在应用中实现方便美观的按钮收放效果。如 ... -
UIAlertTableView 里进行单选和多选的代码例子
2012-02-01 23:22 1159UIAlertTableView 里进行单选和多选的代码例子 ... -
自定义控件用法和一些常用页面效果
2012-02-01 22:23 1026自定义控件用法和一些常用页面效果 原文:http:// ... -
viewDidUnload 和 dealloc 的区别
2012-01-30 10:57 7493对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程 ... -
第二个iPhone应用程序:“Say Hello”
2012-01-30 10:49 1368项目需求 写一个iPhone应用程序,要求可以输入名字, ... -
[iOS]网页保存为png
2012-01-20 10:48 0保存 -
[iOS]iOS截屏
2012-01-19 17:22 2758UIGraphicsBeginImageContext ... -
[iOS]iOS对PDF加密,解密
2012-01-16 17:34 3205保护PDF内容为了保护PDF ... -
[iOS]AES加密在iOS上面的实现
2012-01-16 13:38 9171Encryption.h文件 // // En ...
相关推荐
总结来说,iOS开发者在处理网络请求时,需要根据实际需求选择同步或异步请求,以及GET或POST方法。同步请求适用于数据量小且不影响用户交互的场景,而异步请求则更适用于需要保持用户界面流畅的情况。GET请求简单但...
本主题将深入探讨“iOS网络编程”,特别是“GET同步”和“POST同步”这两种常见的网络请求方法。 首先,我们需要了解iOS中的网络编程基础。苹果提供了多种框架来处理网络请求,如CFNetwork(Core Foundation的网络...
本项目"ios-封装GET、POST请求(基于AFNetworking).zip"就是针对AFNetworking进行二次封装,简化了GET和POST请求的使用方式,使得开发者能够更加高效地进行网络编程。 首先,我们来看一下AFNetworking的核心组件。...
3. **HTTP请求方法**: HTTP协议定义了多种请求方法,如GET、POST、PUT、DELETE等。在iOS中,你可以通过`NSURLSessionTask`的子类(如`NSURLSessionDataTask`)发起这些请求。GET用于获取资源,POST常用于提交数据,...
2. **网络请求类型**: 书中会讲解GET、POST、PUT、DELETE等HTTP请求方法的使用,以及如何构建请求头和请求体,理解这些基础知识对于进行API交互至关重要。 3. **JSON与Model转换**: 在iOS应用中,JSON是常见的数据...
- 若要自定义请求参数,可以使用NSMutableURLRequest,如修改缓存策略、超时时间、HTTP头信息、请求方法(GET、POST等)和Cookie。 **网络请求的发送和处理**: - 发送请求通常涉及异步操作,通过开始一个...
书中通过实际的请求和响应示例,解释了如何使用NSURLSession和NSMutableURLRequest来发送GET、POST请求,并处理响应数据。 2. **WebSocket**:WebSocket是一种双向通信协议,允许客户端和服务器之间进行持续的、低...
本教程以"ios-iOS数据的网络请求.zip"为主要内容,聚焦于iOS平台上的网络编程技术,特别是使用了知名的第三方库AFNetworking进行网络请求的实践示例。 AFNetworking是一款强大的Objective-C框架,它简化了iOS和OS X...
在iOS开发中,网络编程是不可或缺的一部分,而GET和POST是最常见的两种HTTP请求方式。本文将深入探讨这两种请求方法,并通过实例演示它们在iOS中的应用。 GET请求是HTTP协议中最基本的一种请求方法,用于从服务器...
ASIHTTPRequest 提供了一种简单的方式来发送 HTTP 请求,包括 GET、POST、PUT 和 DELETE 等。它支持异步和同步请求,可以处理文件上传和下载,提供了自动缓存功能,以及易于使用的回调机制。库中的主要类是 `...
在iOS开发中,网络请求是应用与服务器交互的基础,主要包括同步请求、异步请求以及HTTP协议中的两种主要请求方法:GET和POST。接下来,我们将详细探讨这些概念。 1. **同步请求**: - 同步请求是阻塞式的,当发送...
在iOS应用中,我们通常使用HTTP来发送GET和POST请求,获取或提交数据。 异步HTTP请求是iOS开发中的核心概念,它使用了GCD(Grand Central Dispatch)或者NSOperationQueue来避免阻塞主线程,确保用户界面的流畅性。...
网络请求通常包括GET和POST等HTTP方法。GET用于获取服务器上的资源,而POST用于向服务器发送数据。在iOS中,可以使用NSURLSessionDataTask创建GET和POST请求。例如,使用NSURLSessionConfiguration配置一个会话,...
本文将深入探讨iOS系统自带的HTTP请求方法,主要关注`URLSession`这一核心组件,它是Apple为iOS和macOS平台提供的现代网络编程接口。 一、URLSession简介 `URLSession`是iOS 7及更高版本中引入的网络编程接口,它...
总之,AFNetworking作为iOS开发中的网络请求利器,其丰富的功能和简洁的API使得网络编程变得轻松。无论你是初学者还是经验丰富的开发者,AFNetworking都是一个值得信赖的选择。通过深入理解和熟练运用AFNetworking,...
在iOS开发中,网络请求是应用与服务器交互的基础,它使得数据可以实时更新,提供丰富的用户体验。本资源“ios-网络请求管理库,基于对AFNetwork的封装.zip”提供了一个针对AFNetworking的封装,旨在简化网络请求的...
在iOS开发中,HTTP协议是应用层网络通信的基石,特别是在构建移动应用时,与服务器进行数据交互常常离不开GET和POST这两种请求方法。POST方法在iOS中的应用广泛,主要用于发送数据到服务器,例如用户注册、登录验证...
这包括`NSURLConnection`、`NSURLSession`及其相关类,它们可以用来发送GET、POST等HTTP请求。 3. **NSURLSession**:作为`NSURLConnection`的替代,`NSURLSession`更现代,性能更好,且支持后台下载和上传。它提供...
POST请求常用于向服务器发送数据。在`curlpp`中,你可以设置POST字段并启动请求: ```cpp void performPostRequest(const std::string& url, const std::string& data) { curlpp::Easy request; request.setOpt...