11package com .shuzijun .leetcode .plugin .utils ;
22
3- import com .intellij . util .io .HttpRequests ;
3+ import com .shuzijun . leetcode . plugin . utils .io .HttpRequests ;
44import org .apache .commons .lang3 .StringUtils ;
55import org .apache .http .HttpHeaders ;
66import org .jetbrains .annotations .NotNull ;
1515 */
1616public class HttpRequestUtils {
1717
18- private static CookieManager cookieManager = new CookieManager ();
18+ private static final CookieManager cookieManager = new CookieManager ();
1919
2020 static {
2121 CookieHandler .setDefault (cookieManager );
2222 }
2323
2424 public static HttpResponse executeGet (HttpRequest httpRequest ) {
2525
26+ HttpResponse httpResponse = new HttpResponse ();
2627 try {
27- return HttpRequests .request (httpRequest .getUrl ())
28+ HttpRequests .request (httpRequest .getUrl ())
2829 .throwStatusCodeException (false )
2930 .tuner (new HttpRequestTuner (httpRequest ))
30- .connect (new HttpResponseProcessor (httpRequest ));
31+ .connect (new HttpResponseProcessor (httpRequest , httpResponse ));
32+
3133 } catch (IOException e ) {
3234 LogUtils .LOG .error ("HttpRequestUtils request error:" , e );
33- HttpResponse httpResponse = new HttpResponse ();
3435 httpResponse .setStatusCode (-1 );
35- return httpResponse ;
3636 }
37+ return httpResponse ;
3738 }
3839
3940 public static HttpResponse executePost (HttpRequest httpRequest ) {
40-
41+ HttpResponse httpResponse = new HttpResponse ();
4142 try {
42- return HttpRequests .post (httpRequest .getUrl (), httpRequest .getContentType ())
43+ HttpRequests .post (httpRequest .getUrl (), httpRequest .getContentType ())
4344 .throwStatusCodeException (false )
4445 .tuner (new HttpRequestTuner (httpRequest ))
45- .connect (new HttpResponseProcessor (httpRequest ));
46+ .connect (new HttpResponseProcessor (httpRequest , httpResponse ));
4647 } catch (IOException e ) {
4748 LogUtils .LOG .error ("HttpRequestUtils request error:" , e );
48- HttpResponse httpResponse = new HttpResponse ();
4949 httpResponse .setStatusCode (-1 );
50- return httpResponse ;
5150 }
51+ return httpResponse ;
5252 }
5353
5454 public static String getToken () {
@@ -67,9 +67,6 @@ public static String getToken() {
6767 public static boolean isLogin () {
6868 HttpRequest request = HttpRequest .get (URLUtils .getLeetcodePoints ());
6969 HttpResponse response = executeGet (request );
70- if (response == null ) {
71- return Boolean .FALSE ;
72- }
7370 if (response .getStatusCode () == 200 ) {
7471 return Boolean .TRUE ;
7572 }
@@ -88,6 +85,18 @@ public static void resetHttpclient() {
8885 cookieManager .getCookieStore ().removeAll ();
8986 }
9087
88+
89+ private static void defaultHeader (HttpRequest httpRequest ) {
90+ Map <String , String > header = httpRequest .getHeader ();
91+ header .putIfAbsent (HttpHeaders .USER_AGENT , "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" );
92+ header .putIfAbsent (HttpHeaders .ACCEPT , "*/*" );
93+ //header.putIfAbsent(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, br");
94+ header .putIfAbsent (HttpHeaders .ACCEPT_LANGUAGE , "zh-CN,zh;q=0.9" );
95+ header .putIfAbsent ("origin" , URLUtils .getLeetcodeUrl ());
96+ //header.putIfAbsent(":authority", URLUtils.getLeetcodeHost());
97+ //header.putIfAbsent(":scheme", "https");
98+ }
99+
91100 private static class HttpRequestTuner implements HttpRequests .ConnectionTuner {
92101
93102 private HttpRequest httpRequest ;
@@ -108,48 +117,39 @@ public void tune(@NotNull URLConnection urlConnection) throws IOException {
108117 defaultHeader (httpRequest );
109118 httpRequest .getHeader ().forEach ((k , v ) -> urlConnection .addRequestProperty (k , v ));
110119 }
111-
112- private static void defaultHeader (HttpRequest httpRequest ) {
113- Map <String , String > header = httpRequest .getHeader ();
114- header .putIfAbsent (HttpHeaders .USER_AGENT , "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" );
115- header .putIfAbsent (HttpHeaders .ACCEPT , "*/*" );
116- //header.putIfAbsent(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, br");
117- header .putIfAbsent (HttpHeaders .ACCEPT_LANGUAGE , "zh-CN,zh;q=0.9" );
118- header .putIfAbsent ("origin" , URLUtils .getLeetcodeUrl ());
119- //header.putIfAbsent(":authority", URLUtils.getLeetcodeHost());
120- //header.putIfAbsent(":scheme", "https");
121- }
122-
123120 }
124121
125122
126123 private static class HttpResponseProcessor implements HttpRequests .RequestProcessor <HttpResponse > {
127124
128- private HttpRequest httpRequest ;
125+ private final HttpRequest httpRequest ;
126+ private final HttpResponse httpResponse ;
129127
130- public HttpResponseProcessor (HttpRequest httpRequest ) {
128+ public HttpResponseProcessor (HttpRequest httpRequest , HttpResponse httpResponse ) {
131129 this .httpRequest = httpRequest ;
130+ this .httpResponse = httpResponse ;
132131 }
133132
134133 @ Override
135134 public HttpResponse process (@ NotNull HttpRequests .Request request ) throws IOException {
135+
136136 if (StringUtils .isNoneBlank (httpRequest .getBody ())) {
137137 request .write (httpRequest .getBody ());
138138 }
139- HttpResponse httpResponse = new HttpResponse ();
140139
141140 URLConnection urlConnection = request .getConnection ();
142141
143142 if (!(urlConnection instanceof HttpURLConnection )) {
144143 httpResponse .setStatusCode (-1 );
144+ return httpResponse ;
145145 } else {
146146 httpResponse .setStatusCode (((HttpURLConnection ) urlConnection ).getResponseCode ());
147147 }
148+
148149 try {
149150 httpResponse .setBody (request .readString ());
150151 } catch (IOException ignore ) {
151152 }
152-
153153 return httpResponse ;
154154 }
155155 }
0 commit comments