我正在尝试向我的服务器发送POST请求,一切似乎都运行良好,但是所有的HTTPBody都在服务器端的请求参数中结束。
服务器上有一个自签名证书,它会生成我当前忽略的AuthenticationChallenge,也可以正常工作。
然而,正如我上面所述,postBodyData最终在服务器上的错误位置。我正在使用的代码如下所示,并记录在NSURLRequest下的Apples ios文档库中。
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:postBodyData];
任何帮助,建议或示例都将不胜感激。
答案 0 :(得分:0)
您还需要在请求标头中传递已发布数据的Content-Length。你应该添加:
NSString *postLength = [NSString stringWithFormat:@"%d", [postBodyData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
答案 1 :(得分:0)
好的,已经找到了问题。 因为我发送了二进制数据,所以内容类型错误,一旦我传入一个空字符串就可以了。
但是我不希望没有设置内容类型,所以我找到了一个适用于此的MIME类型,如下所示。
[request setValue:@"application/octet-stream" forHTTPHeaderField:@"content-type"];