AFNetworking的請求頭設定(token)
對於初入職場的iOS小夥伴們, 搭建UI--大家肯定是沒什麼問題了.
而對於網路請求的POST和GET, 應該還是會有問題;
例如, 如何將APP的token捆綁到請求中, 進行檔案的上傳 -- 現在我們就來解決下面兩個問題:
1,如何將token新增到請求頭? 2, 上傳失敗, 會出現的部分error解決.
問題一: 新增token到請求頭的程式碼如下:
NSDictionary *dict = @{@"name" : @"小明",
@"age" :@"20"
};
//例項化AFHTTPSessionManager
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//調出請求頭
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//將token封裝入請求頭
[manager.requestSerializer setValue:TOKEN forHTTPHeaderField:@"token-id"];
//post上傳檔案
[manager POST:@"http://192.168.0.90/****" parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"上傳成功 === %@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"上傳錯誤 == error == %@",error);
}];
問題二: 上傳失敗, 有時候會出現如下error:
"error == Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain" UserInfo={com.alamofire.serialization.response.error.response={ URL: http://192.168.0.192/api/grey/blood_pressure/upload_data } { status code: 200, headers {
Connection = "keep-alive";
"Content-Type" = "text/plain;charset=UTF-8";
Date = "Fri, 25 Nov 2016 01:05:46 GMT";
Server = "nginx/1.11.5";
"Transfer-Encoding" = Identity;
} }, NSErrorFailingURLKey=http://192.168.0.192/api/grey/blood_pressure/upload_data, com.alamofire.serialization.response.error.data=<7b227265 73756c74 5f636f64 65223a22 30222c22 72657375 6c745f6d 7367223a 22737563 63657373 227d>, NSLocalizedDescription=Request failed: unacceptable content-type: text/plain}"
請不要慌張, 只需要你在AFNetworking的第三方框架內找到AFURLResponseSerialization.m 檔案
修改第228行程式碼, 新增一項@"text/plain", 同時新增@"text/xml"也是在這個地方:
// self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/plain",@"text/json", @"text/javascript", nil];
通過以上, 接下來就可以成功上傳檔案到伺服器了.
相關文章
- ajax中設定請求頭和自定義請求頭
- 檢視進行AFNetworking請求時的頭部資訊
- ruby進行http請求頭設定及獲取HTTP
- Jmeter —— jmeter設定HTTP資訊頭管理器模擬請求頭JMeterHTTP
- 有趣的請求引數/請求頭
- iOS_對AFNetWorking的請求頭引數進行sha1加密iOS加密
- 檢視AFnetworking網路請求時伺服器返回的頭部資訊伺服器
- AFNetworking3.0 HTTPS請求HTTP
- 【web】Spring RestTemplate提交時設定http header請求頭WebSpringRESTHTTPHeader
- AFNetworking(二)AFNetworking對form-data請求體的處理ORM
- TCP 請求頭TCP
- http請求頭HTTP
- phpstudy中apache設定跨域(頭部請求模組開啟)PHPApache跨域
- JAVA設定http請求代理JavaHTTP
- 請求時token過期自動重新整理token
- Python傳送請求代tokenPython
- ajax中POST請求與引數(請求體)設定
- axios請求超時,設定重新請求的完美解決方法iOS
- angular學習筆記(二十四)-$http(2)-設定http請求頭Angular筆記HTTP
- 使用AFNetworking進行引數形式的GET請求
- AFN 請求 並設定acceptableContentTypes
- OkHttp關於https請求的設定HTTP
- HTTP請求頭與響應頭HTTP
- jquery Ajax 請求錯誤 Unexpected tokenjQuery
- RxJava練武場之——Token前置請求RxJava
- http請求頭與響應頭的應用HTTP
- postman請求介面上傳檔案的設定Postman
- CROS跨域請求設定,偏重前端ROS跨域前端
- Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)Swift
- HTTP請求頭中的refer欄位HTTP
- HTTP 請求頭中的 X-Forwarded-ForHTTPForward
- python爬蟲請求頭Python爬蟲
- HTTP請求頭和響應頭詳解HTTP
- 維護你的請求佇列,處理token異常佇列
- AFNetworking(一)從一次請求瞭解AFHTTPSessionManagerHTTPSession
- 使用 AFNetworking 進行 XML 和 JSON 資料請求XMLJSON
- Http 請求頭中的 Proxy-ConnectionHTTP
- HTTP常用請求頭大揭祕HTTP