Change User-Agent and remove App Name and defaults iOS

Darren picture Darren · Oct 10, 2013 · Viewed 11.1k times · Source

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.

Answer

neilco picture neilco · Oct 10, 2013

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