我正在做一些通过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网关。'
但它似乎并没有自动处理这项工作,但我找不到关于手动处理代理身份验证的参考。
我必须使用“代理授权”标头手动重新运行请求吗? 如果是,那么接下来是用于调用或提示当前用户凭据的界面?
顺便说一句,我对获得NTLM身份验证没有太大希望,因为看起来它可能不受NSURLConnection支持,但Basic Auth应该是。
感谢您的任何建议......
答案 0 :(得分:1)
是,您必须手动处理代理身份验证请求。
阅读名为authentication challanges see here的部分。
简而言之,您回复了nsurlconnection代理中的事件。然后,您要求用户输入代理用户名和密码,之后您将使用身份验证详细信息响应请求。 (您不必像iOS处理那样重新发送请求。)