connectionDidFinishLoading没有调用didReceiveData?

时间:2012-07-14 01:48:31

标签: iphone ios xcode

我正在做一个简单的WISPr客户端。当我使用BTOpenZone热点对其进行测试时,我发现willSendRequest已被调用,它会将我重定向到热点着陆页。 我在willSendRequest中返回nil,因为我希望获得WISPr xml标记,但我发现调用了connectionDidFinishLoading,并且检查没有收到数据。

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)redirectResponse;
    int statusCode = [httpResponse statusCode];
    NSLog(@"redirect status code : %d", statusCode);

    NSDictionary *dict = [httpResponse allHeaderFields];
    NSLog(@"redirect dict : %@", [dict description]);

    if (statusCode >= 300 && statusCode < 400)
    {
    NSLog(@"redirect requested:  %@", request);
        return NULL;
    }
    return request;
}

即使我使用tcpdump来嗅探数据包,我也找不到任何WISPr标记。

为什么没有WISPr xml标签的任何想法?

我非常感谢你们的帮助。 THX

1 个答案:

答案 0 :(得分:0)

你不应该从

返回nil

webView:resource:willSendRequest:redirectResponse:fromDataSource:

您需要的标记应包含在该方法的NSURLResponse参数中(实际上是NSHTTPURLResponse),然后您应该使用登录凭据将HTTP POST请求返回到相应的URL。