使用 Objective-C - iPhone 设置代理用户名和密码

Posted

技术标签:

【中文标题】使用 Objective-C - iPhone 设置代理用户名和密码【英文标题】:Setting Proxy Username & password using Objective-C - iPhone 【发布时间】:2011-09-22 06:53:56 【问题描述】:

我正在 iPhone 模拟器中测试一个应用程序,它实际上使用 NSDatadataWithContentsOfURL: 方法发出 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 进行 USB 编程

在 Objective-C (iPhone) 中卸载视图

使用 Objective-C - iPhone 设置代理用户名和密码

iPhone 上的 Objective-C - NSOperationQueue 和 NSInvocationOperation 的使用