【问题标题】:AFNetworking 3.0 multipart/form-data API call without file gives error没有文件的 AFNetworking 3.0 multipart/form-data API 调用给出错误
【发布时间】:2020-02-20 12:07:39
【问题描述】:

我附上Postman的截图

使用邮递员我得到了成功的响应。但我无法使用 AFNetworking 库获得相同的响应。以下是我的示例代码。

- (void)updateActivityQuantity:(NSDictionary *)quantityDic{
    NSString *strURL = [NSString stringWithFormat:@"%@/%@", MAINTAIN_BASEURL,JobDetailCommonURL];

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];

    NSURLSessionTask *task = [manager POST:strURL parameters:quantityDic constructingBodyWithBlock:nil  progress:nil success:^(NSURLSessionTask *task, id responseObject) {
        NSLog(@"responseObject = %@", responseObject);
    } failure:^(NSURLSessionTask *task, NSError *error) {
        NSLog(@"error = %@", error);
    }];

    if (!task) {
        NSLog(@"Creation of task failed.");
    }
}

如何使用 AFNetworking 成功响应?

【问题讨论】:

    标签: ios objective-c multipartform-data afnetworking-3


    【解决方案1】:

    您不应该为 JSON 序列化您的请求管理器。您可以为这样的多部分表单数据序列化您的经理

    [manager.requestSerializer setValue:@"multipart/form-data; boundary=something" forHTTPHeaderField:@"Content-Type"]; 
    manager.requestSerializer = [AFHTTPRequestSerializer serializer]; 
    

    如果您之前没有像下面那样做,您需要将您的“事件”键的值序列化和编码为字符串,因为它是一个 JSON 对象并将其添加到您的 quantityDic 字典中。

    NSDictionary *events = @[@{@"event_time": @"564545454", ....}];
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:events options:0 error:nil];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    

    【讨论】:

      猜你喜欢
      • 2017-05-05
      • 2019-02-26
      • 2015-12-23
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多