2012-10-18 28 views

回答

0

对于像我这样卡住的人。这是我解决它的方式。

  • 使用CFReadStreamCreateForHTTPRequest而非 CFStreamCreatePairWithSocketToHost。
  • 使用正确的代理密钥 - kCFStreamPropertyHTTPProxyHostkCFStreamPropertyHTTPProxyPort

    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]; 
    
相关问题