ASIHttpRequest 的空白响应

Posted

技术标签:

【中文标题】ASIHttpRequest 的空白响应【英文标题】:Blank response from ASIHttpRequest 【发布时间】:2012-10-15 20:12:44 【问题描述】:

我正在使用 ASIHttpRequest 库进行并行异步 Web 调用。这是实际方法的代码sn-p。

- (void)dataForURI:(NSString *)dataURI andTag:(NSString*)tag

NSLog(@"%d",_queue.requestsCount);
if (!_queue) 
    _queue = [ASINetworkQueue queue];

ASIHTTPRequest* request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:dataURI]];
[request setTimeOutSeconds:30];
[request setDownloadProgressDelegate:self];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request setDidReceiveResponseHeadersSelector:@selector(requsestResponseHeaderReceived:)];
[request setShouldContinueWhenAppEntersBackground:YES];
[request setTag:[tag integerValue]];
[_queue addOperation:request];
[_queue go];

当我“NSLog”请求的 request.responseString 属性时,控制台中没有显示任何内容。我使用 Wireshark 检查链接是否正在发送任何响应,并且似乎它正在发送正确的响应。

当我 'NSLog' responseHeaders 它显示正确的值。这是代码sn-p:

-(void)requestFinished:(ASIHTTPRequest *)request

NSLog(@"%@",request.responseString);
NSLog(@"%@",[[request responseHeaders] objectForKey:@"Content-Type"]);
[self imageHandlerDidDownloadData:request.responseData mimeType:[request.responseHeaders objectForKey:@"Content-Type"] forMediaID:[NSString stringWithFormat:@"%d", request.tag]];

我也在这个方法中得到响应数据(但不是在 RequestFinished: 方法中):

-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data

NSLog(@"%@",data);
NSLog(@"%@", [[request responseHeaders] objectForKey:@"Content-Type"]);

请帮助我得到正确的回应...!!!

提前致谢。

【问题讨论】:

所以你得到了 HTTP-headers 但没有内容? request.responseData 记录时是否显示任何内容? 我在 request.responseData 中也没有得到任何东西。 你得到什么响应码? 【参考方案1】:

我想通了。我需要为 _queue 设置委托,而不是为 ASIHttpRequest 设置委托。

使用

[_queue setDelegate:self] worked out for me...

【讨论】:

以上是关于ASIHttpRequest 的空白响应的主要内容,如果未能解决你的问题,请参考以下文章

目标 C - 使用 ASIHTTPRequest 来自 GET 的 HTTP/0.9 响应

iPhone ASIHTTPRequest 从 requestFinished 方法中异步提取响应

如何根据 ASIHTTPRequest 执行不同的操作?

ASIHTTPRequest 返回 HTML 而不是 JSON

NSOperationQueue 和 ASIHTTPRequest

ASIHttpRequest 可达性版本