iOS 4.3中的HTTP代理身份验证

Chr*_*ris 5 iphone authentication http ios4 ios

我正在做一些通过StoreKit和我自己的服务器通过https访问AppStore的ios编程.我试图从公司防火墙后面访问这两个.我可以访问需要"No Auth","Basic Auth"和"NTLM Auth"的代理服务器.

通过'No Auth'访问没有问题,但其他两个让我头疼.我正在使用'NSURLRequest'来连接我的服务器,但我回来了:[NSHTTPURLResponse statusCode]:407 - 需要代理身份验证"Cache-Control"="no-cache"; "内容长度"= 2428; "Content-Type"="text/html"; Expires = 0; "Proxy-Authenticate"="Basic realm = \"WebMarshal Proxy Server \""; "代理连接"="保持活着"; Server ="WebMarshal Proxy"; Via ="1.1 NZ8KS49CH"; "X-Webmarshal-Requestid"="8854B349-B35E-48EF-A643-3C6C6FEC5F9C"; }

阅读URL编程指南建议NSURL类'...使用用户的系统首选项透明地支持代理服务器和SOCKS网关.

但它似乎并没有自主地处理这项工作,但我找不到关于手动处理代理身份验证的参考.

我必须使用"代理授权"标题手动重新运行请求吗?如果是,那么接下来是用于调用或提示当前用户凭据的界面?

BTW我对获得NTLM身份验证没有太大希望,因为看起来它可能不受NSURLConnection的支持,但Basic Auth应该是.

谢谢你的任何建议......

Rob*_*Rob 1

是的,您必须手动处理代理身份验证请求。

阅读称为身份验证挑战的部分,请参阅此处

简而言之,您响应 nsurlconnection 委托中的事件。然后,您要求用户提供代理用户名和密码,然后使用身份验证详细信息响应请求。(您不必像 iOS 处理的那样重新发送请求)。