Search code examples
iosuser-agentnsurlrequest

Change User-Agent and remove App Name and defaults iOS


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.


Solution

  • 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"];