服务器不提出质询时的NSURL身份验证

Mar*_*rra 6 iphone objective-c

我处于需要向服务器发送身份验证(基本HTTP身份验证)但服务器不首先向我发送质询的情况.这被追踪为wget开关的副本--auth-no-challenge.我的问题是,我没有看到任何方法让NSURL这样做.

我已在NSURLConnection委托中实现了基本身份验证,但该-connection: didReceiveAuthenticationChallenge:方法未被调用.

有没有办法强制这个电话或嵌入这种奇怪的情况的身份验证信息?

epa*_*tel 9

我相信你可以添加用户名和密码 NSURL

NSURL *url = [NSURL URLWithString:@"http://username:password@some.host.com/"];
Run Code Online (Sandbox Code Playgroud)


pau*_*erd 8

您可以通过将授权信息添加到请求标头来手动将授权信息添加到请求中,如下所示:

NSString *authString = [[[NSString stringWithFormat:@"%@:%@",user, password] dataUsingEncoding:NSUTF8StringEncoding] base64Encoding];        
[request setValue:[NSString stringWithFormat:@"Basic %@", authString] forHTTPHeaderField:@"Authorization"]; 
Run Code Online (Sandbox Code Playgroud)

如果您的NSMutableURLRequest和用户/密码是您的相应用户名和密码NSString的请求

我一直在使用这种方法来使用来自iphone的API,其中额外的挑战不是由服务器启动的.