gpt4 book ai didi

ios - URLSession 配置的 header 设置仅适用于 PUT,不适用于 POST

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:19 24 4
gpt4 key购买 nike

我正在使用以下代码处理 NSURLSession 默认 session

  var defaultSession : NSURLSession {
var config = NSURLSessionConfiguration.defaultSessionConfiguration()
config.HTTPAdditionalHeaders = [
// FIXME: for POST this line doesn't work, but for PUT it works, this could be a bug.
"Content-Type": "application/json"
]
return NSURLSession(configuration: config, delegate: self.delegate, delegateQueue: NSOperationQueue.mainQueue())
}

但似乎 content-type: application/json 设置仅适用于 PUT 方法,这是服务器响应

POST application/x-www-form-urlencoded /api/v2/DevHiin 400 24.815 ms - 11
PUT application/json /api/v2/DevBoost 201 51.151 ms - 65

当我为每个 POST 请求添加 header 设置时,它再次起作用。

        req.addValue("application/json", forHTTPHeaderField: "Content-Type")

服务器

POST application/json /api/v2/DevHiin 201 19.925 ms - 95
PUT application/json /api/v2/DevBoost 201 23.729 ms - 65

但这真的不是一个漂亮的解决方案,而且整个代码真的很奇怪,有没有人有见识告诉我这是怎么回事?

非常感谢!

最佳答案

看起来 iOS 8.3 在 NSURLSessionConfiguration 中引入了一个错误,由此指定的 Content-Type 不被接受(有关类似问题,请参见 NSMutableURLRequest body malformed after iOS 8.3 update)。在我们实现后端解决方法之前,这使我们的整个应用程序陷入瘫痪。正如您所描述的,我们还将内容类型添加到每个可变的 POST 请求中。

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

关于ios - URLSession 配置的 header 设置仅适用于 PUT,不适用于 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29536417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com