Józ*_*sza 6 json http-post ios afnetworking-2
我想从我的应用程序发出以下请求:
AFHTTPRequestOperationManager *requestManager = [[AFHTTPRequestOperationManager alloc] init];
requestManager.responseSerializer.acceptableContentTypes = [requestManager.responseSerializer.acceptableContentTypes setByAddingObject:@"application/json"];
requestManager.requestSerializer = [AFJSONRequestSerializer serializer];
[requestManager POST:urlString parameters:aParameters constructingBodyWithBlock:nil success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"%@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
其中aParameters是具有以下内容的NSDictionary:
NSDictionary *urlParams = @{@"username" : anUser.userName, @"password" : anUser.password};
Run Code Online (Sandbox Code Playgroud)
当我使用用户输入"anUsername"和"aPassword"从我的应用程序发出请求时,我在servlet中获取了以下日志:
--Boundary+5738A89B2C391231
Content-Disposition: form-data; name="password"
aPassword
--Boundary+5738A89B2C391231
Content-Disposition: form-data; name="username"
anUsername
--Boundary+5738A89B2C391231--
multipart/form-data; boundary=Boundary+5738A89B2C391231
Run Code Online (Sandbox Code Playgroud)
我的印象是使用AFJSONRequestSerializer会以适当的格式发送我的请求,但是正如日志所示,它是多部分/表单数据.解析这种请求真的很难(对我来说)(我在服务器端用Java解析它),所以我的问题是:是否有可能在我的请求正文中发送一个json?像这样的东西:
{
"userName" : "anUsername",
"password" : "aPassword"
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
对于任何有关人员:POST:parameters:constructingBodyWithBlock:success:failure:您应该使用,而不是使用该方法POST:parameters:success:failure:.前者执行多部分表单请求,而后者执行url表单编码.另外,要在JSON中发送params,实例的requestSerializer属性AFHTTPRequestOperationManager应该是一个实例AFJSONRequestSerializer(默认设置为AFHTTPRequestSerializer).浏览实现文件以AFHTTPRequestOperationManager获取详细信息非常有用,它帮助我排除了这个错误.
| 归档时间: |
|
| 查看次数: |
6441 次 |
| 最近记录: |