gpt4 book ai didi

ios - AFHTTPSessionManager 将正文添加到 POST

转载 作者:技术小花猫 更新时间:2023-10-29 11:00:44 27 4
gpt4 key购买 nike

我也需要向我的服务器发送一个 post 请求。

AFHTTPRequestOperation 非常简单,只需使用:

[request setHTTPBody: [requestBody dataUsingEncoding:NSUTF8StringEncoding]];

但是我找不到任何示例如何使用 AFHTTPSessionManager 使用相同的方法。

使用方法:

[self POST:@"extraLink" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

} success:^(NSURLSessionDataTask *task, id responseObject) {

} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];

我如何将正文添加到“AFMultipartFormData”?

提前致谢

最佳答案

摘自 AFNetworking home page , 要创建一个 multipart/form-data 请求,您可以调用 appendPartWithFileURL:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:filePath name:@"image" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

AFHTTPRequestOperationManager 已被弃用。因此,改为使用 AFHTTPSessionManagerPOST 的语法与 constructingBodyWithBlock 非常相似:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:filePath name:@"image" error:nil];
} progress:nil success:^(NSURLSessionDataTask *operation, id responseObject) {
NSLog(@"Success: %@", responseObject);
} failure:^(NSURLSessionDataTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

或者,如果您想发布 foo=bar&key=value&... 形式的请求(即 application/x-www-form-urlencoded 请求),你会做类似的事情:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSDictionary *parameters = @{@"foo": @"bar", @"key": @"value"};
[manager POST:@"http://example.com/resources.json" parameters:parameters progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Success: %@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error: %@", error);
}];

关于ios - AFHTTPSessionManager 将正文添加到 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26298593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com