通过Cocoa中的NSURLRequest/NSURLConnection接收HTTP标头

21 iphone macos cocoa objective-c

我一直在努力找出如何通过NSURLConnection发出的请求来接收HTTP标头.通常,请求使用如下简单的内容:

    NSURLConnection *connection = [[NSURLConnection alloc]
    initWithRequest:request
        delegate:self];
Run Code Online (Sandbox Code Playgroud)

我个人在Apple丰富的文档中找到接收响应头的唯一方法是使用以下NSURLConnection类方法通过同步调用:

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)

在这里,我可以轻松地引用NSURLResponse类型的响应对象.这里的问题是我还没准备好通过移动设备发出同步请求,特别是对于具有高延迟的网络,例如EDGE.是否可以使用NSURLConnection的默认异步行为获得类似的结果?

Ben*_*ieb 42

在连接委托中,添加-connection:didReceiveResponse:方法.如果您正在执行标准HTTP请求,则传入的NSURLResponse对象实际上将是NSHTTPURLResponse对象,并响应该-allHeaderFields消息.这应该是你正在寻找的.