123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- package com.luooqi.ocr.utils;
- import java.util.Hashtable;
- import java.util.Map;
- import cn.hutool.http.Header;
- import cn.hutool.http.HttpRequest;
- import cn.hutool.http.HttpResponse;
- import cn.hutool.http.HttpUtil;
- import cn.hutool.log.StaticLog;
- /**
- * fish-web
- * Created by 何志龙 on 2018-03-25.
- */
- @SuppressWarnings("SpellCheckingInspection")
- public class WebUtils {
- static {
- HttpRequest.closeCookie();
- }
- public static String getSafeHtml(HttpResponse response) {
- if (response == null) {
- return "";
- }
- return response.body();
- }
- public static String getHtml(String url) {
- HttpResponse response = get(url);
- String html = getSafeHtml(response);
- if (response != null) {
- response.close();
- }
- return html;
- }
- public static HttpResponse get(String url) {
- return get(url, 0, null, true);
- }
- public static String getLocation(String url, String cookie) {
- try {
- HttpResponse response = get(url, 0, new Hashtable<String, String>() {{
- put("Cookie", cookie);
- }}, false);
- if (response == null) {
- return url;
- }
- String location = response.header(Header.LOCATION);
- response.close();
- return location;
- } catch (Exception ex) {
- return "";
- }
- }
- public static HttpResponse get(String url, String cookie) {
- return get(url, 0, new Hashtable<String, String>() {{
- put("Cookie", cookie);
- }}, true);
- }
- public static HttpResponse get(String url, int userAgent, String cookie) {
- return get(url, userAgent, new Hashtable<String, String>() {{
- put("Cookie", cookie);
- }}, true);
- }
- public static HttpResponse get(String url, int userAgent, Map<String, String> headers) {
- return get(url, userAgent, headers, true);
- }
- public static HttpResponse get(String url, int userAgent, Map<String, String> headers, boolean allowRedirct) {
- try {
- HttpRequest request = HttpUtil.createGet(url).timeout(10000).setFollowRedirects(allowRedirct);
- if (headers == null) {
- headers = new Hashtable<>();
- }
- switch (userAgent) {
- case 1:
- headers.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.3.16 NetType/WIFI Language/zh_CN");
- break;
- case 2:
- headers.put("User-Agent", "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");
- break;
- case 3:
- headers.put("User-Agent", "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; Lumia 930) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586");
- break;
- case 4:
- headers.put("User-Agent", "NativeHost");
- break;
- case 5:
- headers.put("User-Agent", "Dalvik/1.6.0 (Linux; U; Android 4.4.2; NoxW Build/KOT49H) ITV_5.7.1.46583");
- break;
- case 6:
- headers.put("User-Agent", "qqlive");
- break;
- case 7:
- headers.put("User-Agent", "Dalvik/1.6.0 (Linux; U; Android 4.2.2; 6S Build/JDQ39E)");
- break;
- case 8:
- headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) XIAMI-MUSIC/3.0.9 Chrome/56.0.2924.87 Electron/1.6.11 Safari/537.36");
- break;
- case 9:
- headers.put("User-Agent", "okhttp/2.7.5");
- break;
- case 10:
- headers.put("User-Agent", "Mozilla/5.0 (Linux; Android 5.1.1; oppo r11 plus Build/LMY48Z) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 SogouSearch Android1.0 version3.0");
- break;
- default:
- headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
- break;
- }
- request.addHeaders(headers);
- return request.execute();
- } catch (Exception ex) {
- StaticLog.error(ex);
- return null;
- }
- }
- public static HttpResponse postRaw(String url, String data) {
- return postRaw(url, data, 0, null);
- }
- public static HttpResponse postRaw(String url, String data, int userAgent, Map<String, String> headers) {
- return postData(url, new Hashtable<String, Object>() {{
- put("FORM", data);
- }}, 2, userAgent, headers);
- }
- public static HttpResponse postJson(String url, String data, int userAgent, Map<String, String> headers) {
- return postData(url, new Hashtable<String, Object>() {{
- put("JSON", data);
- }}, 1, userAgent, headers);
- }
- public static HttpResponse postForm(String url, Map<String, Object> data, int userAgent, Map<String, String> headers) {
- return postData(url, data, 0, userAgent, headers);
- }
- private static HttpResponse postData(String url, Map<String, Object> data, int contentType, int userAgent, Map<String, String> headers) {
- try {
- HttpRequest request = HttpUtil.createPost(url).timeout(10000);
- if (contentType == 0) {
- request.contentType("application/x-www-form-urlencoded");
- request.form(data);
- } else if (contentType == 1) {
- request.body(data.values().iterator().next().toString(), "application/json;charset=UTF-8");
- } else {
- request.contentType("application/x-www-form-urlencoded");
- request.body(data.values().iterator().next().toString());
- }
- if (headers == null) {
- headers = new Hashtable<>();
- }
- switch (userAgent) {
- case 1:
- headers.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3");
- break;
- case 2:
- headers.put("User-Agent", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19");
- break;
- case 3:
- headers.put("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)");
- break;
- case 4:
- headers.put("User-Agent", "NativeHost");
- break;
- case 5:
- headers.put("User-Agent", "Apache-HttpClient/UNAVAILABLE (java 1.4)");
- break;
- case 6:
- headers.put("User-Agent", "Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4");
- break;
- case 7:
- headers.put("User-Agent", "okhttp/2.7.5");
- break;
- case 10:
- headers.put("User-Agent", "Mozilla/5.0 (Linux; Android 5.1.1; oppo r11 plus Build/LMY48Z) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 SogouSearch Android1.0 version3.0");
- break;
- default:
- headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
- break;
- }
- request.addHeaders(headers);
- return request.execute();
- } catch (Exception ex) {
- StaticLog.error(ex);
- return null;
- }
- }
- }
|