gpt4 book ai didi

ios - NSURLSessionConfiguration 不接受 HTTPAdditionalHeaders 中的 'Content type'

转载 作者:可可西里 更新时间:2023-11-01 05:43:55 26 4
gpt4 key购买 nike

我正在使用 NSURLSession 进行 REST 网络服务调用。我已经在 NSURLSessionConfiguration.HTTPAdditionalHeaders 中设置了网络服务的内容类型。下面的代码在 iOS 7.0 到 iOS 8.1.3 中运行良好。但在 iOS 8.3 中,当在 HTTPAdditionalHeaders 中设置内容类型时,Web 服务响应数据返回为零字节。

方法一:

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] init];
NSData *postData = [dataToBeSent dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[urlRequest setHTTPBody:postData];
[urlRequest setHTTPShouldHandleCookies:YES];
[urlRequest setURL:urlOfService];
[urlRequest setHTTPMethod:@"POST"];

NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfiguration.HTTPAdditionalHeaders = @{@"Content-Type" : @"application/json"};
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
}];

如果我修改上面的代码以如下设置 NSMutableURLRequest 中的内容类型,我会从 iOS8.3 中的 webservice 接收数据。我不确定是什么导致了这个问题。我也没有看到任何人报告此问题。我只想知道我调用网络服务的第一种方式是否是推荐的方式,或者我在这里做错了什么?如果调用 web 服务的第一种方法是错误的,为什么它可以在除 8.3 以外的所有其他 iOS 版本上运行?

方法二:

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] init];
NSData *postData = [dataToBeSent dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[urlRequest setHTTPBody:postData];
[urlRequest setHTTPShouldHandleCookies:YES];
[urlRequest setURL:urlOfService];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];

NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
}];

最佳答案

由于 iOS 8.3 SDK 中的错误(功能?),您必须使用第二种方法 http://openradar.appspot.com/20498383

关于ios - NSURLSessionConfiguration 不接受 HTTPAdditionalHeaders 中的 'Content type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29648260/

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