今天遇到一个坑,之前传Post数据直接Post 就行了,今天跟另外一个服务端同事调接口,接口要求向body里面塞一个字符串。
试了几次,这哥们都告诉我body里面什么都没有。。
当时心里面一万只草泥马飞过。。
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]];
之前这样就行了,现在怎么都不行,没办法,用postman 试了下,发现是body设置方式的区别,接口那边只管 RAW方式。。。
查了半天资料,要在Header里面加两个值才行。
基础知识是多么重要啊,之前完全不知道Body还有好几种组的方式。
同时也验证了另外一个事情,一个给力的同事也是多么重要,按说这对服务端来说应该不算什么啊。。或者是我太差劲了。
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody: postData];
[request setValue:[NSString stringWithFormat:@"%lu",postData.length] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];