如何在AFNetworking 2.0中执行简单的form-urlencoded POST请求?

Gab*_*Lim 2 networking ios afnetworking-2

如何在AFNetworking 2.0中复制此NSURLConnection代码?

NSString *post = @"key=xxx";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://test.com/"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[conn start];
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 7

简答:使用AFHTTPRequestSerializerAFNetworking提供的.

根据该文件:

[[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:URLString parameters:parameters];
Run Code Online (Sandbox Code Playgroud)

发送:

POST http://example.com/
Content-Type: application/x-www-form-urlencoded

foo=bar&baz[]=1&baz[]=2&baz[]=3
Run Code Online (Sandbox Code Playgroud)

如果您正在使用AFHTTPRequestOperationManager:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];

// you can use different serializer for response.
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
Run Code Online (Sandbox Code Playgroud)


Suh*_*til 5

它在AFNetworking页面的github链接中给出

发送post请求的代码如下,只需在xocde中导入项目中的AFNeworking文件夹,并添加必要的框架,以便开始使用afnetworking

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"key": @"xxx"};
[manager POST:@"http://test.com" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)