如何使用 AFNetworking 在 iPhone 模拟器中通过 *** IP 地址进行连接?

Posted

技术标签:

【中文标题】如何使用 AFNetworking 在 iPhone 模拟器中通过 *** IP 地址进行连接?【英文标题】:How do I connect over a *** IP Address in iPhone Simulator using AFNetworking? 【发布时间】:2015-06-25 21:27:16 【问题描述】:

- (NSString *)baseURL 从文件中提取字符串。

NSString *endpoint = @"/authentication.json";
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSString *token = @"mytokenvalue"

[manager.requestSerializer setValue:token forHTTPHeaderField:TOKEN_HEADER];
manager.requestSerializer = [AFJSONRequestSerializer serializer];

NSString *path = [NSString stringWithFormat:@"%@%@", [self baseURL], endpoint];

[manager    POST:path
    parameters:nil
    success:^(AFHTTPRequestOperation *operation, id responseObject) 
        if (operation.response.statusCode == 200) 
            [self.delegate validated:true];
        
   failure:^(AFHTTPRequestOperation *operation, NSError *error) 
        [self.delegate validated:false];
];

(lldb) po 错误 错误域=NSURLErrorDomain 代码=-1012“操作无法完成。(NSURLErrorDomain 错误-1012。)”UserInfo=0x7bf3ed90 NSErrorFailingURLKey=https://1.2.3.4/authentication.json, NSErrorFailingURLStringKey=https://1.2.3.4/authentication.json

我可以在我的终端中通过 *** 连接到 1.2.3.4,但不能通过 AFNetworking。我试过 1.2.3.4 和 https://1.2.3.4.

我有

[AFHTTPRequestOperationManager manager].securityPolicy.allowInvalidCertificates = YES;

在我的应用委托中。

如何通过 AFNetworking 连接到此 IP?

编辑:验证证书链的要点。

我禁用了它并验证AFSecurityPolicy.m中的域名

确认 db) po [AFHTTPRequestOperationManager manager].securityPolicy.SSLPinningMode AFSSLPinningModeNone 也保留为 None。

【问题讨论】:

我没有看到您在代码中设置安全策略的位置。 根据list of error codes,您的身份验证已取消NSURLErrorUserCancelledAuthentication = -1012。所以我会尝试将validatesCertificateChain 设置为NO [AFHTTPRequestOperationManager manager].securityPolicy.allowInvalidCertificates = YES; 电话在哪里? 在 App Delegate 中分配窗口 rootViewController 并调用 makeKeyAndVisible 之前 您可能无法使用模拟器,因为网络接口属于 Mac OS。 【参考方案1】:

所以我找到了解决方案。那是港口。 cURL 会自动找到正确的端口,但 NSURLconnection 没有。我必须指定

https://1.2.3.4:12345 作为我的网址。 (我电脑的IP)

在我的机器上运行

socat TCP-LISTEN:12345,fork TCP:5.6.7.8:12345(其中 5.6.7.8 是服务器 IP)

【讨论】:

以上是关于如何使用 AFNetworking 在 iPhone 模拟器中通过 *** IP 地址进行连接?的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking - 如何通过 ID 发出 POST 请求

AFNetworking 获取图像,如果它被修改

如何使用 AFNetworking 框架与 json 一起使用我自己的 api 登录我有令牌要传递但我现在不知道如何使用这些

AFNetworking POST 并取回数据

使用 AFNetworking 缓存不需要的 GET 请求

使用 AFNetworking 下载文件