gpt4 book ai didi

objective-c - 在 iOS CFStreams 上设置代理不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:50 32 4
gpt4 key购买 nike

我已经在我的 Mac 上设置了一个 squid http 代理,并且我已经设置了我的 Mac 来共享它的无线连接。在我手机上的 wifi 连接信息中,我设置了 HTTP 代理设置:

Server: 10.0.2.1
Port: 3128
Authentication: off

在我的 iOS 应用程序中,我有两种访问网络的方法。对于 http 请求,我使用 NSURLRequest,对于其他 TCP 连接,我使用 AsyncSocket 库。

所有使用 NSURLRequest 的请求都可以毫无问题地使用代理(对于 SSL,代理充当 HTTP CONNECT 隧道)。但是,我似乎无法获得用于 AsyncSocket 连接的代理。

我确实更新了 AsyncSocket 库以在创建 CFStreams 时调用以下内容,例如:

//for printing out the proxy settings
static void printEntry (const void* key, const void* value, void* context) {
CFShow(key);
CFShow(value);
}

- (BOOL)createStreamsFromNative:(CFSocketNativeHandle)native error:(NSError **)errPtr
{
// Create the socket & streams.
CFStreamCreatePairWithSocket(kCFAllocatorDefault, native, &theReadStream, &theWriteStream);
.
.
.
CFDictionaryRef proxyDict = CFNetworkCopySystemProxySettings();
CFDictionaryApplyFunction(proxyDict, printEntry, NULL); // I see the proxy settings are correct here

CFReadStreamSetProperty(theReadStream, kCFStreamPropertyHTTPProxy, proxyDict);
CFWriteStreamSetProperty(theWriteStream, kCFStreamPropertyHTTPProxy, proxyDict);

CFRelease(proxyDict);
return YES;
}

我在这里遗漏了什么明显的东西吗?

最佳答案

您没有创建 CFHTTPRead 或写入流,因此套接字流将被忽略kCFStreamPropertyHTTPProxy

关于objective-c - 在 iOS CFStreams 上设置代理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11784260/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com