2009-10-07 1 views
51

안녕하세요, NSURL Connection을 사용하여 데이터를 수신하고 있습니다.NSURLConnection의 userAgent 변경

[NSURLConnection sendSynchronousRequest: 
//create request from url 
[NSURLRequest requestWithURL: 
    //create url from string 
    [NSURL URLWithString:url] 
] 
//request parameters 
returningResponse:nil error:nil 
] 

는 사용자 에이전트 문자열을 변경할 수 있습니까? 바로 지금입니다

프로그램 응용/AppVersion CFNetwork에서/459 다윈/10.0.0.d3

답변

98

의 Obj-C :

NSString* userAgent = @"My Cool User Agent"; 
NSURL* url = [NSURL URLWithString:@"http://whatsmyuseragent.com/"]; 
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] 
           autorelease]; 
[request setValue:userAgent forHTTPHeaderField:@"User-Agent"]; 

NSURLResponse* response = nil; 
NSError* error = nil; 
NSData* data = [NSURLConnection sendSynchronousRequest:request 
            returningResponse:&response 
               error:&error]; 

스위프트 :

let userAgent = "My Cool User Agent" 
if let url = NSURL(string: "http://whatsmyuseragent.com/") { 
    let request = NSMutableURLRequest(URL: url) 
    request.setValue(userAgent, forHTTPHeaderField: "User-Agent") 
    var response:NSURLResponse? = nil; 
    var error:NSError? = nil; 
    if let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error) { 
     // do something with your data 
    } 
} 
당신의 setValue`사용해야
+3

: forHTTPHeaderField', 당신은 단지 기본에 더 많은 정보를 추가하는 대신 사용자 에이전트를 변경하려는 경우 하나. – Daniel

6

예, 당신은 NSMutableURLRequest를 사용하여 사용자 에이전트 문자열에 대한 사용자 지정 헤더 필드를 설정해야합니다.