我使用以下Xamarin.iOS代码来设置代理。
var configuration = NSUrlSessionConfiguration.DefaultSessionConfiguration;
System.IntPtr myHandle = Dlfcn.dlopen("/CFNetwork.framework/CFNetwork", 0);
var keyHost = Dlfcn.GetStringConstant(myHandle, "kCFStreamPropertyHTTPProxyHost");
var keyPort = Dlfcn.GetStringConstant(myHandle, "kCFStreamPropertyHTTPProxyPort");
Dlfcn.dlclose(myHandle);
NSDictionary proxyDict = new NSDictionary(keyHost, "<my-host-value>", keyPort, "<my-port-value>");
configuration.ConnectionProxyDictionary = proxyDict;
它适用于模拟器但不适用于设备(iPhone和iPad)。如何解决这个问题?
答案 0 :(得分:1)
经过长时间的研究,我认为我找到了解决方案。 动态库的路径(Dlfcn.dlopen中的第一个参数)应为:
“/系统/库/框架/ CFNetwork.framework / CFNetwork的”
或者您可以使用类常量:
Constants.CFNetworkLibrary