关于AFN上传为JSON参数的问题

今天对了个接口,正常用postman测试,form-data报错400,于是改为json形式,通了,所以代码里面也得改
AFN代码里AFURLRequestSerialization.m文件第104行,改源码

- (NSString *)URLEncodedStringValue {
    if (!self.value || [self.value isEqual:[NSNull null]]) {
        return AFPercentEscapedStringFromString([self.field description]);
    } else {
        return [NSString stringWithFormat:@"%@=%@", AFPercentEscapedStringFromString([self.field description]), AFPercentEscapedStringFromString([self.value description])];
    }
}

改成

- (NSString *)URLEncodedStringValue {
    if (!self.value || [self.value isEqual:[NSNull null]]) {
        return AFPercentEscapedStringFromString([self.field description]);
    }else if(!self.field || [self.field isEqual:[NSNull null]]){
        return [NSString stringWithFormat:@"%@",self.value];
    }else {
        return [NSString stringWithFormat:@"%@=%@", AFPercentEscapedStringFromString([self.field description]), AFPercentEscapedStringFromString([self.value description])];
    }
}

然后在使用的时候将字典形式的参数转成字符串

NSString* jsonStr = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:paramsDict options:0 error:nil] encoding:NSUTF8StringEncoding];

请求头里面将Content-Type对应值为application/json

[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

嗯,收工

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。