今天在做一個接口的時候遇到一個坑
我用封裝好的afn 調(diào)用
//1.構造操作對象管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//2.設置解析格式,默認json
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];
[manager POST:requestURL
parameters:parmas
progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (success != nil)
{
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (fail != nil) {
fail(error);
//服務器出錯
[GetData showAlertViewWithMessage];
[SVProgressHUD dismiss];
NSLog (@"%@",error);
}
}];
報400
然后和后臺溝通了下腰涧,他說要傳的參數(shù)是json字符串赁酝。
然后我把入?yún)⒌淖值涓某闪薺son的string (nsstring)
但是直接把string 丟到參數(shù)里面會報415的錯誤
然后我就封裝成一個字典犯祠,大概是這樣的:
然后發(fā)現(xiàn) 法严,后臺解析不到數(shù)據(jù)
解決辦法:
1.聲明請求的參數(shù)格式是json【AFN 默認的格式是二進制】
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
2.POST 數(shù)據(jù)格式:
字典
不需要轉換成json字符串
參考
AFN Post請求俊柔,報錯400(code:-1011)
AFNetworking之AFJSONRequestSerializer使用
AFNetwork 作用和用法詳解