美文网首页
关于AFN上传为JSON参数的问题

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

作者: andy桐 | 来源:发表于2020-07-02 13:46 被阅读0次

今天对了个接口,正常用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"];

嗯,收工

相关文章

网友评论

      本文标题:关于AFN上传为JSON参数的问题

      本文链接:https://www.haomeiwen.com/subject/usxrqktx.html