设置User Agent

Posted 菁欣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置User Agent相关的知识,希望对你有一定的参考价值。

  公司的前端要给项目的webview加一个区分,用来区别是ios端访问、android访问还是在浏览器访问的,说是要加一个User Agent ,前端根据不同信息做适配,和我说来一头雾水,后来经过开发同事的指导和在网上查阅资料,才有了点头绪,在这里和大家分享一下。

一、获取UserAgent

UIWebView方式:
UIWebView* tempWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* userAgent = [tempWebView stringByEvaluatingjavascriptFromString:@"navigator.userAgent"];
NSLog(@"UIWebView默认的userAgent = %@", userAgent);
默认UserAgent输出:
UIWebView默认的userAgent = Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (Khtml, like Gecko) Mobile/14E304
 二、修改UserAgent
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   UIWebView* tempWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
   NSString* userAgent = [tempWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
   NSLog(@"UIWebView默认的userAgent = %@", userAgent);
   NSString *versionsss = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];;
   NSString *ua = [NSString stringWithFormat:@"%@/XYWY_YIMAI/iOS/%@", userAgent, versionsss];//自定义需要拼接的字符串
   [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent" : ua, @"User-Agent" : ua}];
}
获取UserAgent输出:
NSMutableURLRequest *request = .....

/** 获取系统的UA */
NSString *sysUA = request.allHTTPHeaderFields[@"User-Agent"];

最终得到修改后的:

Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304/XYWY_YIMAI/iOS/5.5

 

以上是关于设置User Agent的主要内容,如果未能解决你的问题,请参考以下文章

scrapy随机更改User-Agent方法

为WebClient请求设置User-Agent标头

是否可以不设置 $_SERVER['HTTP_USER_AGENT'] ?

Python 爬虫之设置ip代理,设置User-Agent,设置请求头,设置post载荷

20170428 关于headers和user_agent的文章自用

Scrapy 设置随机 User-Agent