我在使用 ASIHTTPRequest 时遇到了一些奇怪的行为。
我正在尝试连接到一个网站,该网站在加载页面时提示用户提供他/她的凭据。
为了使用 ASIHTTPRequest 实现这一点,我使用了以下代码:
NSURL *URL = [NSURL URLWithString:@"http://fhict.fontys.nl/Pages/Welkom.aspx"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:URL];
[request setUsername:theUsername];
[request setPassword:thePassword];
[request setDelegate:self];
[request startAsynchronous];
我确定提供给请求的凭据是正确的,当我在 WiFi 上工作时,请求成功并且应用程序继续运行..
但是当我连接到蜂窝网络时,完全相同的请求给出了一个错误:error:Error Domain=ASIHTTPRequestErrorDomain Code=3 "Authentication required" UserInfo=0x2e8ef0 {NSLocalizedDescription=Authentication required}
我检查了,当凭据不正确时也会出现同样的错误,但我已经仔细检查了它们并且它们是正确的!
为了解决这个问题,我尝试过:
- 将超时设置为 2 分钟(我知道过度杀伤,但只是为了测试),这导致了同样的错误
- 为 WWAN 启用并设置带宽限制(如http://allseeing-i.com/ASIHTTPRequest/How-to-use中所述,搜索 WWAN),但没有任何改变
- 设置启用 shouldPresentCredentialsBeforeChallange 并将 basichttpheader 添加到请求中,但随后 WiFi 也停止工作..
然后在谷歌上搜索了很多,仍然没有解决方案。
我有点困惑,因为在 WiFi 上一切正常,
我希望这里的任何人都可以指出我正确的方向..