[[NSURL URLWithString:@"http://www.apple.com/" propertyForKey:NSHTTPPropertyHTTPProxy];
でもこれが動くならそんな値(情報)必要としないとも言える.
で以下がやるべきこと
//SystemConfiguration.frameworkを追加
//includeなりimportで次のheaderを読込む<SystemConfiguration/SystemConfiguration.h>
CFDictionaryRef proxyDict = SCDynamicStoreCopyProxies(NULL);
CFNumberRef enableNum = (CFStringRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPEnable);
CFStringRef hostStr = (CFStringRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPProxy);
CFNumberRef portNum = (CFNumberRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPPort);
だということです.CFxxx系は不勉強で良く知りません.
が,CFStringRef, CFNumberRefはNSStringのように扱えちゃいました.
そこで以下のような方法でHTTP Proxyを設定してみました.
CFDictionaryRef proxyDict = SCDynamicStoreCopyProxies(NULL);
CFNumberRef enableNum = (CFStringRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPEnable);
if ([enableNum intValue]==1) {
CFStringRef hostStr = (CFStringRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPProxy);
CFNumberRef portNum = (CFNumberRef) CFDictionaryGetValue(proxyDict, kSCPropNetProxiesHTTPPort);
NSString* proxyURLStr= [NSString stringWithFormat:@"http://%@:%@", hostStr, portNum];
NSURL* proxyURL = [NSURL URLWithString:proxyURLStr];
WSMethodInvocationSetProperty(ref, kWSHTTPProxy, proxyURL);
}
もっと賢い方法や正しい方法があったら教えてやってください.
#2007/08/30 kSCPropNetProxiesHTTPEnableにてproxyを使うかどうかに変更
とりあえず目的達成.
参考
ttp://developer.apple.com/jp/qa/qa2001/qa1234.html
0 件のコメント:
コメントを投稿