如何将代理详细信息设置为NSURLDownload对象

时间:2012-07-11 12:19:47

标签: objective-c cocoa proxy cfnetwork

我正在创建一个下载程序,我想通过特定的代理服务器运行。我能够将代理信息传递给CFURLRef对象。但是无法在NSURLDownload中使用相同的内容,这将完全忽略所做的代理设置。

NSURL *url = [NSURL URLWithString:@"urlstring"];

CFReadStreamRef readStream; 
CFHTTPMessageRef message = CFHTTPMessageCreateRequest(kCFAllocatorDefault,
CFSTR("GET"),
(CFURLRef)url,
kCFHTTPVersion1_1);
readStream = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, message);
CFTypeRef keys[2], values[2];
keys[0] = kCFStreamPropertyHTTPSProxyHost;
values[0] = @"proxy.host";
keys[1] = kCFStreamPropertyHTTPSProxyPort;
values[1] = CFNumberCreate(NULL, kCFNumberSInt32Type, @"portNo");
CFDictionaryRef proxyDict = CFDictionaryCreate(NULL, keys, values, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
// boRet =
 CFReadStreamSetProperty(readStream, kCFStreamPropertyHTTPProxy, proxyDict);

CFNetworkCopyProxiesForURL(
   CFURLRef          url,
   CFDictionaryRef   proxySettings
);

现在,如果我将CFURLRef转换为NSURL对象并将其传递给下载程序,则它无法按预期工作。 如何将设置为CFURLRef对象的属性传递给NSURLRequest?有没有其他方法可以实现这一点?..我也尝试过使用ASIHTTPRequest包装器..但是如何将其转换为NSURLRequest?..任何帮助都将不胜感激

由于

0 个答案:

没有答案