vis*_*kar 44 json http-post ios afnetworking-2
我有一个Web脚本,它通过HTTP POST请求接受JSON字符串作为输入.我遇到了几个相同的AFNetworking 1.x示例,有人可以指点我或给AFNetworking 2.0示例对带有格式化JSON作为输入的Web脚本执行HTTP POST请求吗?
谢谢
vis*_*kar 78
在搜索了文档并尝试了一些代码后,我得到了一些例子
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *params = @ {@"user" :txtUserName, @"pwd" :txtPwd };
[manager POST:URL_SIGNIN parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"JSON: %@", responseObject);
}
failure:
^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
另外,不要忘记在服务器脚本中将响应头类型设置为Application/json.
小智 20
以下是一些用于NSMutableDictionary以JSON格式存储在参数中的POST参数的简单模板.适用于AFNetworking 2.4.1.
NSString *baseURL = @"http://your-server.com/";
NSString *path = @"method/url/";
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:@"value" forKey:@"key"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:path parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
//here is place for code executed in success case
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//here is place for code executed in error case
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error while sending POST"
message:@"Sorry, try again."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
NSLog(@"Error: %@", [error localizedDescription]);
}];
Run Code Online (Sandbox Code Playgroud)
小智 8
如果要将json发布到服务器,则应使用以下方式发布参数.
使用这种方式,您可以在请求标题中找到"Content-Type"是"application/json".
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;
NSDictionary *paras = @{@"uid" : @(10020)};
[manager POST:@"http://your.request.url" parameters:paras success:^(AFHTTPRequestOperation *operation, id responseObject) {
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"the falire is %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
愿这有帮助.:)
小智 5
在快速:
添加此内容 manager.AFHTTPRequestOperationManager
manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.PrettyPrinted)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50821 次 |
| 最近记录: |