10

I am trying to change the User-Agent in iOS, however when I add my custom User-Agent it appends it to the existing User-Agent that contains my app name.

This is the code I am using:

NSMutableURLRequest *request = [client requestWithMethod:@"POST" path:endpoint parameters:nil];
    [request addValue:@"MyUserAgent (iPhone; iOS 7.0.2; gzip)" forHTTPHeaderField:@"User-Agent"];

And the User-Agent appears like this:

MyAppName/1.0 (iPhone; iOS 7.0.2; Scale/2.00),MyUserAgent (iPhone; iOS 7.0.2; gzip)

I've read that this might not be possible as the App name is automatically added to the User-Agent, however I have seen another similar app to mine that has managed to customise the User-Agent completely.

Community
  • 1
  • 1
Darren
  • 10,182
  • 20
  • 95
  • 162

1 Answers1

22

To override the default user agent, use setValue:forHTTPHeaderField: instead of addValue:forHTTPHeaderField:. For example:

[request setValue:@"MyUserAgent (iPhone; iOS 7.0.2; gzip)" forHTTPHeaderField:@"User-Agent"];
neilco
  • 7,964
  • 2
  • 36
  • 41