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

How do I connect over a VPN IP Address in iPhone Simulator using AFNetworking?

- (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 error Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x7bf3ed90 {NSErrorFailingURLKey=https://1.2.3.4/authentication.json, NSErrorFailingURLStringKey=https://1.2.3.4/authentication.json}

我可以在我的终端中通过 VPN 连接到 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 上。

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

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

在我的机器上 运行

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