每当服务器返回401时,ASIHTTPRequest的响应数据和头字段始终为null。
我只能读取设置为ASIAuthenticationErrorType的状态代码和NSError代码。我正在使用Charles Web Proxy嗅探流量。我可以清楚地看到服务器正在返回一个非空响应体。
我已经尝试实现authenticationNeededForRequest:delegate以查看响应数据是否为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];
谢谢!
答案 0 :(得分:1)
显然,这是以前版本的ASIHttpRequest中的一个错误。它应该在当前版本上修复。
答案 1 :(得分:0)
如果您已实现委托方法 - (void)请求:(ASIHTTPRequest *)请求didReceiveData:(NSData *)数据
然后,responseData将为null。因为API会将数据处理移交给应用程序。