gpt4 book ai didi

objective-c - NSURLRequest/NSURLConnection ios 5.0 v/s 早期版本

转载 作者:可可西里 更新时间:2023-11-01 05:47:48 25 4
gpt4 key购买 nike

我正在尝试使用 NSMutableRequest 和 NSURLConnection 从服务器获取压缩文件。这是我正在使用的代码:

NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:downloadUrl
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:30.0];


[newRequest setValue:@"Y29tLm5vbWFkZ......" forHTTPHeaderField:@"Authorization"];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:newRequest delegate:self];
if (!connection) {
[self handleDownloadError];
}

我正在使用相同的 NSURLConnectionDelegate 方法

didReceiveResponse, didReceiveData, connectionDidFinishLoading, didFailWithError

但是,当我在 ios 4.3 或更早版本(它下载压缩文件)和 ios 5.0(返回一个 JSON,表示“身份验证失败”。)中运行此代码时,我得到了不同的响应。

ios 5.0 为 NSURLConnectionDelegate 引入了许多新方法。但我不确定这是否是关于 ios 5.0 更改 api 的问题,或者它是以不同方式处理相同请求的服务器代码。有谁知道可能是什么问题?

最佳答案

iOS5 改变了 HTTP header 的大写方式,还至少从末尾删除了空格。通过将它们打印到控制台来验证您收到的实际 HTTP header 是什么:

- (void)connection:(NSURLConnection *)aConnection
didReceiveResponse:(NSURLResponse *)aResponse
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)aResponse;
NSLog(@"Response headers :%@", [httpResponse allHeaderFields]);
}

顺便说一句,您是否注意到您列出的那些方法在 Apple iOS Developer Library docs for NSURLConnection 上被标记为“在 iOS 2.0 到 iOS 4.3 中可用” ?

关于objective-c - NSURLRequest/NSURLConnection ios 5.0 v/s 早期版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281978/

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