详解iPhone应用中HTTP上传请求协议

移动开发 iOS
本文介绍的是详解iPhone应用中HTTP上传请求协议,很详细的介绍了文中提到的http协议应该注意四点,来实现请求协议,来看详细内容。

iPhone应用中HTTP上传请求协议是本文要介绍的内容,最近坐了一个项目涉及到图片上传的问题,起初用到socket,但是由于比较陌生,改而用 HTTP协议做web上传,这里需要自定义HTTP协议。

HTTP协议应该注意四点:
 
1、初始化响应服务器地址

  1. NSURL *url = [NSURL URLWithString:@"http://xxx.xxx.xx.xxx/mqupload.jsp"];  
  2. [urlRequest setValue:  [NSString stringWithFormat:@"%@\r\n",  @"http://XXXXXX  HTTP/1.1"]]; //可要可无 

 2、设置提交方法  GET/POST

  1. [urlRequest setHTTPMethod:@"POST"]; 

3、设置响应内容类型

  1. [urlRequest setValue:  [NSString stringWithFormat:@"multipart/form-data;     
  2.  boundary=---------%@", @"7daaba1e0368"] forHTTPHeaderField:@"Content-Type"]; 

4、设置响应内容

  1. NSMutableData *postData = [NSMutableData dataWithCapacity:[m_imageData length]];  
  2. [postData appendData: [[NSString stringWithFormat:@"---------%@\r\n", @"7daaba1e0368"]  
  3.                       dataUsingEncoding:NSUTF8StringEncoding]];//开始标志  
  4.  
  5. [postData appendData: [[NSString stringWithFormat: @"Content-Disposition:form-data; name="File1";            
  6.   filename="1.jpg"\r\n Content-type: image/pjpeg\r\n\r\n"]dataUsingEncoding:NSUTF8StringEncoding]];//name是页面文件的参数,type是文件类型  
  7. [postData appendData:imageData];// 文件数据  
  8. [postData appendData: [[NSString stringWithFormat:@"\r\n---------%@--\r\n",  @"7daaba1e0368"]  
  9.                       dataUsingEncoding:NSUTF8StringEncoding]];// 文件结束标志  
  10. [urlRequest setHTTPBody:postData];//把数据加载到响应的文件体 

只要做到以上几点,一个完整的http请求协议就做好了。

下面附一个简洁版完整的请求协议体

  1. NSURL *url = [NSURL URLWithString:@"http://XX.XX.XX"];//请求服务器路径。  
  2. m_imageData = UIImagePNGRepresentation(myImageView.image);  
  3. NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];  
  4. [urlRequest setHTTPMethod:@"POST"];  
  5. [urlRequest setValue:  [NSString stringWithFormat:@"multipart/form-data;  boundary=---------%@",                   
  6.                                @"7daaba1e0368"] forHTTPHeaderField:@"Content-Type"];  
  7. [urlRequest setValue: [NSString stringWithFormat:@"%@\r\n\r\n",   
  8.                     @" keep-alive"] forHTTPHeaderField:@"Connection"];  
  9. NSMutableData *postData = [NSMutableData dataWithCapacity:[m_imageData length]];  
  10. [postData appendData: [[NSString stringWithFormat:@"---------%@\r\n",  
  11.                     @"7daaba1e0368"] dataUsingEncoding:NSUTF8StringEncoding]];  
  12.  
  13. [postData appendData: [[NSString stringWithFormat:  
  14.                        @"Content-Disposition:form-data; name="File1"filename="1.jpg"\r\n Content-type:    
  15.  image/pjpeg\r\n\r\n"]dataUsingEncoding:NSUTF8StringEncoding]];  
  16. [postData appendData:m_imageData];  
  17. [postData appendData: [[NSString stringWithFormat:@"\r\n---------%@--\r\n",  @"7daaba1e0368"]  
  18.                       dataUsingEncoding:NSUTF8StringEncoding]];  
  19. [urlRequest setHTTPBody:postData];  
  20. NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; 

小结:详解iPhone应用中HTTP上传请求协议的内容介绍完了,主要是http上传请求协议的一个小总结,***希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-17 10:16:35

iPhone应用HTTP请求协议

2014-06-05 10:21:29

HTTP

2011-08-11 13:35:28

iPhoneASIHTTPRequHTTP

2011-08-02 17:27:06

iPhone应用 剪切技巧

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-10 16:08:02

iPhoneProtocol协议

2011-08-15 11:37:20

iPhone开发Mask

2011-08-12 14:33:06

iPhone缓存文件

2011-08-17 10:42:43

iPhone应用

2019-08-23 06:36:32

2011-08-03 17:18:58

iPhone UILabel UISlider

2019-04-02 08:36:12

2014-06-18 09:25:07

HTTP

2011-08-22 10:06:38

IOS开发ASIHTTPRequHTTP 请求

2011-08-17 15:10:21

iPhone开发Web视图

2010-06-29 13:24:26

HTTP协议

2020-10-20 14:01:16

HTTP

2011-08-19 14:14:14

iPhone应用

2010-06-29 13:18:31

HTTP协议

2010-08-29 20:46:53

DHCP协议
点赞
收藏

51CTO技术栈公众号