2009-10-07 64 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 
] 

ユーザエージェント文字列を変更することはできますか。 は今、それは次のとおりです。

AppNameは/の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 
    } 
} 
+3

あなたは 'のsetValueを使用する必要があります:forHTTPHeaderFieldを:'、あなただけではなく、デフォルトへのより多くの情報を付加するのuserAgentを変更したい場合1。 – Daniel

6

はい、あなたはNSMutableURLRequestを使用して、ユーザーエージェント文字列のカスタムヘッダーフィールドを設定する必要があります。

関連する問題