㈠ iOS 網路請求有哪些方式
兩種請求來方式GET,POST
兩種請求方式的源比較
相同點:都能給伺服器傳輸數據
不同點:
1、給伺服器傳輸數據的方式:
GET:通過網址字元串。POST:通過data
2、傳輸數據的大小:GET:⽹址字元串最多255位元組。POST:使用NSData,容量超過1G
3、安全性:GET:所有傳輸給伺服器的數據,顯示在網址里,類似於密碼的明文輸入,直接可見。
POST:數據被轉成NSData(二進制數據),類似於密碼的密文輸⼊入,⽆無法直接讀取。
連接方式
同步:使用一個線程(主線程)完成所有的工作,效率低,當線程正在執行一個任務的時候無法執行另一個任務,所有如果使用同步進行網路數據的請求,那麼在該線程進行網路請求時,暫時無法響應用戶的點擊事件,用戶體驗極差
非同步:再開一個線程(子線程)去完成任務,此時,主線程依然可以監聽用戶的點擊事件,不會造成卡頓,用戶體驗較好
㈡ 如何設計一個面向協議的 iOS 網路請求庫
這個得看你post的是什麼東西,你伺服器接收的是什麼東西,如果是簡單的字元串,直接提交就ok了,不需要設置頭什麼的。如果是其他的文件的東西你可能要模擬表單提交,這個得看你們伺服器是否能支持了。
㈢ ios如何實現http協議數據流上傳
ios應用中HTTP上傳請求協議,用HTTP協議做web上傳,這里需要自定義協議。
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];
㈣ iOS向網路介面請求數據的方法有哪幾種呢
一般常用的就post 和 get 兩種比較常用,是http協議的!這里給你推薦個AFnetworking吧,這是一個封裝好的(一般都是用三方的,自己寫的少,還有一個ASIhttp 不過現在不用了,因為沒人維護了),網路一下到github 上去下載吧!
post 可用於大的文件上傳,參數不暴露,
get 參數暴露,一般用於數據較小,例如,瀏覽器的url 一般都用的get !
不懂的再問我呀,歡迎提問,嘿嘿,兄弟,記得多給點財富值呀!