使用 Objective-C - iPhone 设置代理用户名和密码
Posted
技术标签:
【中文标题】使用 Objective-C - iPhone 设置代理用户名和密码【英文标题】:Setting Proxy Username & password using Objective-C - iPhone 【发布时间】:2011-09-22 06:53:56 【问题描述】:我正在 iPhone 模拟器中测试一个应用程序,它实际上使用 NSData
的 dataWithContentsOfURL:
方法发出 HTTP 请求。
我的 mac 具有受用户名和密码保护的代理设置。默认情况下,模拟器不考虑我的 Mac 中提供的代理设置。我收到以下回复。有没有一种方法可以让我们以编程方式提供代理用户名、密码,以便模拟器可以读取这些值并允许请求发生。
回应:
<html><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD>
<BODY>
<FONT face="Helvetica">
<big><strong></strong></big><BR>
</FONT>
<blockquote>
<TABLE border=0 cellPadding=1 >
<TR><TD>
<FONT face="Helvetica">
<big>Access Denied (authentication_failed)</big>
<BR>
<BR>
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
Your credentials could not be authenticated: "Credentials are missing.". You will not be permitted access until your credentials can be verified.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
This is typically caused by an incorrect username and/or password, but could also be caused by network problems.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica" SIZE=2>
<BR>
For assistance, contact your network support team.
</FONT>
</TD></TR>
</TABLE>
</blockquote>
</FONT>
</BODY></HTML>
谢谢 苏迪尔
【问题讨论】:
【参考方案1】:-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
if ([challenge previousFailureCount] == 0)
NSURLCredential *newCredential;
newCredential=[NSURLCredential credentialWithUser:@"ABC"
password:@"ABC"
persistence:NSURLCredentialPersistenceNone];
[[challenge sender] useCredential:newCredential
forAuthenticationChallenge:challenge];
else
[[challenge sender] cancelAuthenticationChallenge:challenge];
// inform the user that the user name and password
// in the preferences are incorrect
【讨论】:
以上是关于使用 Objective-C - iPhone 设置代理用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Objective-c 为 iPhone/iPad 生成设备的唯一 ID
在 iPhone 上使用 Objective-C 使用 WCF Web 服务
使用 Objective-C - iPhone 设置代理用户名和密码
iPhone 上的 Objective-C - NSOperationQueue 和 NSInvocationOperation 的使用