更改NSURLConnection的userAgent

jan*_*mon 56 iphone cocoa cocoa-touch nsurlconnection

嘿我正在使用NSURL连接来接收数据.

[NSURLConnection sendSynchronousRequest:
//create request from url
[NSURLRequest requestWithURL:
  //create url from string
  [NSURL URLWithString:url]
] 
//request parameters
returningResponse:nil error:nil
] 
Run Code Online (Sandbox Code Playgroud)

是否可以更改用户代理字符串?现在它是:

AppName/AppVersion CFNetwork/459 Darwin/10.0.0.d3

nal*_*all 106

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];
Run Code Online (Sandbox Code Playgroud)

迅速:

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
   }
 }
Run Code Online (Sandbox Code Playgroud)

  • 你应该使用`setValue:forHTTPHeaderField:`,如果你想改变userAgent而不是仅仅添加更多信息到默认值. (3认同)

Mik*_*lah 6

是的,您需要使用an NSMutableURLRequest并为您的用户代理字符串设置自定义标头字段.