[英]How do I connect over a VPN IP Address in iPhone Simulator using AFNetworking?
- (NSString *)baseURL
pulls a String from a file. - (NSString *)baseURL
从文件中提取String。
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 } (lldb)po error Error Domain = NSURLErrorDomain Code = -1012“操作无法完成。(NSURLErrorDomain error -1012。)”UserInfo = 0x7bf3ed90 {NSErrorFailingURLKey = https://1.2.3.4/authentication.json,NSErrorFailingURLStringKey = https://1.2.3.4/authentication.json }
I can connect to 1.2.3.4 through VPN in my terminal, but not through AFNetworking. 我可以通过终端中的VPN连接到1.2.3.4,但不能通过AFNetworking连接到1.2.3.4。 I tried 1.2.3.4 and https://1.2.3.4 . 我试过1.2.3.4和https://1.2.3.4 。
I have 我有
[AFHTTPRequestOperationManager manager].securityPolicy.allowInvalidCertificates = YES;
In my app Delegate. 在我的应用程序代表中。
How do I connect to this IP through AFNetworking? 如何通过AFNetworking连接到此IP?
EDIT: Great point on validating certificate chain. 编辑:验证证书链的重点。
I disabled that and validates domain name in AFSecurityPolicy.m
我禁用了该功能并验证了AFSecurityPolicy.m
域名
Confirmed that db) po [AFHTTPRequestOperationManager manager].securityPolicy.SSLPinningMode AFSSLPinningModeNone
is left on None, too. 确认db)po [AFHTTPRequestOperationManager manager].securityPolicy.SSLPinningMode AFSSLPinningModeNone
也留在None上。
So I found the solution. 所以我找到了解决方案。 It was the port. 这是港口。 cURL was automatically finding the right port, but NSURLconnection wasn't. cURL自动找到正确的端口,但NSURLconnection没有。 I had to specify 我必须指明
https://1.2.3.4:12345
as my URL. https://1.2.3.4:12345
作为我的网址。 (my computer's IP) (我的电脑的IP)
On my machine I run 在我的机器上,我跑
socat TCP-LISTEN:12345,fork TCP:5.6.7.8:12345
(where 5.6.7.8 is server IP) socat TCP-LISTEN:12345,fork TCP:5.6.7.8:12345
(其中5.6.7.8是服务器IP)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.