首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLRequest setHTTPBody在服务器的参数中结束

NSURLRequest setHTTPBody在服务器的参数中结束
EN

Stack Overflow用户
提问于 2012-02-27 10:44:03
回答 2查看 1.4K关注 0票数 0

我正在尝试发送一个POST请求到我的服务器,看起来一切正常,但是所有的HTTPBody都在服务器端的请求参数中结束。

在服务器上有一个自签名证书,它生成了一个我目前忽略的AuthenticationChallenge,它也工作得很好。

然而,正如我在上面所说的,postBodyData在服务器上的错误位置结束了。我使用的代码如下所示,并记录在NSURLRequest下的Apples ios文档库中。

代码语言:javascript
复制
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:postBodyData];

任何帮助,建议或例子将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-28 05:58:59

好了,我已经找到问题所在了。因为我发送的是二进制数据,所以内容类型是错误的,一旦我传入一个空字符串,它就可以工作了。

但是,我不想设置任何内容类型,所以我找到了一种MIME类型,可以正确地执行此操作,如下所示。

代码语言:javascript
复制
[request setValue:@"application/octet-stream" forHTTPHeaderField:@"content-type"];
票数 0
EN

Stack Overflow用户

发布于 2012-02-27 11:22:47

您还需要在请求标头中传递已发布数据的内容长度。您应该添加:

代码语言:javascript
复制
NSString *postLength = [NSString stringWithFormat:@"%d", [postBodyData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9459428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档