詳解iPhone應用中HTTP上傳請求協議
作者:佚名
本文介紹的是詳解iPhone應用中HTTP上傳請求協議,很詳細的介紹了文中提到的http協議應該注意四點,來實現請求協議,來看詳細內容。
iPhone應用中HTTP上傳請求協議是本文要介紹的內容,最近坐了一個項目涉及到圖片上傳的問題,起初用到socket,但是由于比較陌生,改而用 HTTP協議做web上傳,這里需要自定義HTTP協議。
HTTP協議應該注意四點:
1、初始化響應服務器地址
- NSURL *url = [NSURL URLWithString:@"http://xxx.xxx.xx.xxx/mqupload.jsp"];
- [urlRequest setValue: [NSString stringWithFormat:@"%@\r\n", @"http://XXXXXX HTTP/1.1"]]; //可要可無
2、設置提交方法 GET/POST
- [urlRequest setHTTPMethod:@"POST"];
3、設置響應內容類型
- [urlRequest setValue: [NSString stringWithFormat:@"multipart/form-data;
- boundary=---------%@", @"7daaba1e0368"] forHTTPHeaderField:@"Content-Type"];
4、設置響應內容
- NSMutableData *postData = [NSMutableData dataWithCapacity:[m_imageData length]];
- [postData appendData: [[NSString stringWithFormat:@"---------%@\r\n", @"7daaba1e0368"]
- dataUsingEncoding:NSUTF8StringEncoding]];//開始標志
- [postData appendData: [[NSString stringWithFormat: @"Content-Disposition:form-data; name="File1";
- filename="1.jpg"\r\n Content-type: image/pjpeg\r\n\r\n"]dataUsingEncoding:NSUTF8StringEncoding]];//name是頁面文件的參數,type是文件類型
- [postData appendData:imageData];// 文件數據
- [postData appendData: [[NSString stringWithFormat:@"\r\n---------%@--\r\n", @"7daaba1e0368"]
- dataUsingEncoding:NSUTF8StringEncoding]];// 文件結束標志
- [urlRequest setHTTPBody:postData];//把數據加載到響應的文件體
只要做到以上幾點,一個完整的http請求協議就做好了。
下面附一個簡潔版完整的請求協議體
- NSURL *url = [NSURL URLWithString:@"http://XX.XX.XX"];//請求服務器路徑。
- m_imageData = UIImagePNGRepresentation(myImageView.image);
- NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
- [urlRequest setHTTPMethod:@"POST"];
- [urlRequest setValue: [NSString stringWithFormat:@"multipart/form-data; boundary=---------%@",
- @"7daaba1e0368"] forHTTPHeaderField:@"Content-Type"];
- [urlRequest setValue: [NSString stringWithFormat:@"%@\r\n\r\n",
- @" keep-alive"] forHTTPHeaderField:@"Connection"];
- NSMutableData *postData = [NSMutableData dataWithCapacity:[m_imageData length]];
- [postData appendData: [[NSString stringWithFormat:@"---------%@\r\n",
- @"7daaba1e0368"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postData appendData: [[NSString stringWithFormat:
- @"Content-Disposition:form-data; name="File1"; filename="1.jpg"\r\n Content-type:
- image/pjpeg\r\n\r\n"]dataUsingEncoding:NSUTF8StringEncoding]];
- [postData appendData:m_imageData];
- [postData appendData: [[NSString stringWithFormat:@"\r\n---------%@--\r\n", @"7daaba1e0368"]
- dataUsingEncoding:NSUTF8StringEncoding]];
- [urlRequest setHTTPBody:postData];
- NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
小結:詳解iPhone應用中HTTP上傳請求協議的內容介紹完了,主要是http上傳請求協議的一個小總結,***希望本文對你有所幫助!
責任編輯:zhaolei
來源:
互聯網