今天由于项目原因,利用原生,自己封装了HTTP请求的post,却服务器一直返回表示body是空的。
经过排查和Google后,终于发现了问题
下面主要提下注意事项和解决方法:
1、body需要处理过
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]];
2、body有好几组设置方式。具体是哪些原谅我基础知识差,如果有清楚的请告知
经过资料查找后,发现需要在header里添加两个值
[requestsetValue:[NSStringstringWithFormat:@"%lu",postData.length]forHTTPHeaderField:@"Content-Length"];
[requestsetValue:@"application/x-www-form-urlencoded charset=utf-8"forHTTPHeaderField:@"Content-Type"];
其中postData是已经处理过的
3、关于Xcode的optimization
具体原因不是很清楚,但是一般情况下,release下的选择是最优。
但是最优却导致我body传值是空的
断点下,po可以得到值,但是实例化却拿不到,建议关掉:
提示:如果Xcode有下图警告,关掉!