AFNetworking 2.0 post 运行不正常
AFNetworking 2.0 post not working well
我使用 AFNetworking post 一些 JSON 数据到服务器,服务器将用相同的 JSON 数据响应。
这是目标代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager POST:@"http://127.0.0.1:5000/test" parameters:@{@"value":@(1)} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON:%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
服务器代码(使用Flask):
@app.route('/test', methods = ['POST'])
def test():
resultJson = json.dumps(request.json)
response = make_response(resultJson)
return response
Wnen 我 运行 代码,发生错误:
Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo=0x7febc2d33560 {com.alamofire.serialization.response.error.response= { URL: http://127.0.0.1:5000/test } { status code: 200, headers {
"Content-Length" = 12;
"Content-Type" = "text/html; charset=utf-8";
Date = "Mon, 02 Feb 2015 01:10:55 GMT";
Server = "Werkzeug/0.9.6 Python/2.7.6";
} }, NSErrorFailingURLKey=http://127.0.0.1:5000/test, com.alamofire.serialization.response.error.data=<7b227661 6c756522 3a20317d>, NSLocalizedDescription=Request failed: unacceptable content-type: text/html}
不明白为什么报错状态码是200,为什么报错信息显示Content-Type是text/html,我把Content-Type设置成application/json 在我上面的 Objective-C 代码中。
但是,当我使用 VisualJSON(一个 Mac 应用程序)时一切正常。
您返回了 JSON 数据作为响应,但您对设置 Content-Type 的假设不正确。创建一个 mimetype 设置为 'application/json'.
的响应实例
from flask import request, json
@app.route('/test', methods=['POST'])
def test():
data = json.dumps(request.get_json())
resp = app.response_class(data, mimetype='application/json')
return resp
我使用 AFNetworking post 一些 JSON 数据到服务器,服务器将用相同的 JSON 数据响应。
这是目标代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager POST:@"http://127.0.0.1:5000/test" parameters:@{@"value":@(1)} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON:%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
服务器代码(使用Flask):
@app.route('/test', methods = ['POST'])
def test():
resultJson = json.dumps(request.json)
response = make_response(resultJson)
return response
Wnen 我 运行 代码,发生错误:
Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo=0x7febc2d33560 {com.alamofire.serialization.response.error.response= { URL: http://127.0.0.1:5000/test } { status code: 200, headers { "Content-Length" = 12; "Content-Type" = "text/html; charset=utf-8"; Date = "Mon, 02 Feb 2015 01:10:55 GMT"; Server = "Werkzeug/0.9.6 Python/2.7.6"; } }, NSErrorFailingURLKey=http://127.0.0.1:5000/test, com.alamofire.serialization.response.error.data=<7b227661 6c756522 3a20317d>, NSLocalizedDescription=Request failed: unacceptable content-type: text/html}
不明白为什么报错状态码是200,为什么报错信息显示Content-Type是text/html,我把Content-Type设置成application/json 在我上面的 Objective-C 代码中。
但是,当我使用 VisualJSON(一个 Mac 应用程序)时一切正常。
您返回了 JSON 数据作为响应,但您对设置 Content-Type 的假设不正确。创建一个 mimetype 设置为 'application/json'.
的响应实例from flask import request, json
@app.route('/test', methods=['POST'])
def test():
data = json.dumps(request.get_json())
resp = app.response_class(data, mimetype='application/json')
return resp