我知道如何使用NSStream
类创建输入/输出流套接字。我也能够建立 TCP 连接和 SSL 连接。但我不知道如何与HTTP_PROXY
服务器建立流套接字连接。服务器还需要发送用户名/密码。
这可能使用NSStream
API 吗?
我知道如何使用NSStream
类创建输入/输出流套接字。我也能够建立 TCP 连接和 SSL 连接。但我不知道如何与HTTP_PROXY
服务器建立流套接字连接。服务器还需要发送用户名/密码。
这可能使用NSStream
API 吗?
对于像我这样被卡住的人。这就是我解决它的方法。
使用正确的代理密钥 -kCFStreamPropertyHTTPProxyHost
和
kCFStreamPropertyHTTPProxyPort
.
CFHTTPMessageRef request;
request = CFHTTPMessageCreateRequest(
NULL,
CFSTR("GET"),
(__bridge CFURLRef) [NSURL URLWithString:@"http://www.apple.com/"],
kCFHTTPVersion1_1
);
assert(request != NULL);
self.inputStream = CFBridgingRelease(
CFReadStreamCreateForHTTPRequest(NULL, request)
);
CFRelease(request);
if (YES) {
BOOL success;
NSDictionary * proxyDict;
proxyDict = @{
(__bridge NSString *) kCFStreamPropertyHTTPProxyHost: @"proxy.example.com",
(__bridge NSString *) kCFStreamPropertyHTTPProxyPort: @12345,
};
success = [self.inputStream setProperty:proxyDict
forKey:(__bridge NSString *) kCFStreamPropertyHTTPProxy
];
assert(success);
}
[self.inputStream setDelegate:self];
[self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode
];
[self.inputStream open];