我在我的 iOS 应用程序中使用 HTTPS POST 连接到内部公司 REST 服务。此服务需要基本的 HTTP 身份验证。
当我尝试在 HTTPHeader 中传递身份验证参数时,服务器返回错误消息“Error Domain=NSURLErrorDomain Code=-1202”此服务器的证书无效。您可能正在连接到伪装成“oiam.XXXX.com”的服务器,这可能会使您的机密信息面临风险。” UserInfo=0x8d1de60 {NSErrorFailingURLStringKey= https://oiam.xxxx.com/NSLocalizedRecoverySuggestion=您愿意还是要连接到服务器?,”
我读了一些问题,看起来我需要安装证书。由于我在 iOS 模拟器上,因此无法安装证书。
我尝试使用 NSURLConnectionDelegate 协议并且连接正常。
我唯一的问题是我传递用户名密码的这种方法。它安全吗?为什么我不需要对值进行编码?在 Header 中进行 HTTPS 基本身份验证时,我正在为传递值进行编码。
-(void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge previousFailureCount]) {
[[challenge sender] cancelAuthenticationChallenge:challenge];
} else {
NSURLCredential *credential = [NSURLCredential credentialWithUser:@"username1"
password:@"password1"
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}
}