问题描述
||
每当服务器返回401时,ASIHTTPRequest的响应数据和标头字段始终为null。
我只能读取状态代码和设置为ASIAuthenticationErrorType的NSError代码。我正在使用Charles Web代理嗅探流量。我可以清楚地看到服务器正在返回一个非空的响应正文。
我尝试实现authenticationNeededForRequest:委托以查看响应数据是否为null。但是,永远不会调用此委托方法。
这是我用来初始化网络队列的代码:
networkQueue = [[ASINetworkQueue alloc] init];
[networkQueue setDelegate:self];
[networkQueue setRequestDidFinishSelector:@selector(requestDidFinish:)];
[networkQueue setRequestDidFailSelector:@selector(requestDidFail:)];
并发送请求
ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:apiURL];
request.delegate = self;
request.userInfo = userInfo;
[request setRequestMethod:method];
[networkQueue addOperation:request];
[networkQueue go];
谢谢!
解决方法
显然,这是以前版本的ASIHttpRequest中的错误。它应该固定在当前版本上。
, 如果已实现委托方法
-(void)请求:(ASIHTTPRequest *)请求didReceiveData:(NSData *)data
然后,responseData将为null。因为API会将数据处理移交给应用程序。