1

每当服务器返回 401 时,ASIHTTPRequest 的响应数据和标头字段始终为空。

我只能读取设置为 ASIAuthenticationErrorType 的状态代码和 NSError 代码。我正在使用 Charles Web Proxy 来嗅探流量。我可以清楚地看到服务器正在返回一个非空的响应正文。

我尝试实现 authenticationNeededForRequest: 委托以查看响应数据是否为空。但是,这个委托方法永远不会被调用。

这是我用来初始化网络队列的代码:

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];

谢谢!

4

2 回答 2

1

显然,这是以前版本的 ASIHttpRequest 中的一个错误。它应该固定在当前版本上。

于 2011-07-28T20:48:50.390 回答
0

如果你已经实现了委托方法 -(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data

然后,responseData 将为空。因为 API 会将数据处理交给应用程序。

于 2014-08-19T07:12:26.237 回答