Skip to content

Commit 1e1c6b1

Browse files
committed
Network connections are compatible with lower versions
1 parent 8a004fa commit 1e1c6b1

File tree

7 files changed

+974
-33
lines changed

7 files changed

+974
-33
lines changed

src/main/java/com/shuzijun/leetcode/plugin/actions/toolbar/PickAction.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.shuzijun.leetcode.plugin.actions.toolbar;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4+
import com.intellij.openapi.application.ApplicationManager;
45
import com.intellij.ui.components.JBScrollPane;
56
import com.shuzijun.leetcode.plugin.actions.AbstractAction;
67
import com.shuzijun.leetcode.plugin.manager.ViewManager;
@@ -21,6 +22,8 @@ public void actionPerformed(AnActionEvent anActionEvent, Config config) {
2122
return;
2223
}
2324
JBScrollPane scrollPane = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_SCROLL);
24-
ViewManager.pick(tree, scrollPane);
25+
ApplicationManager.getApplication().invokeAndWait(() -> {
26+
ViewManager.pick(tree, scrollPane);
27+
});
2528
}
2629
}

src/main/java/com/shuzijun/leetcode/plugin/manager/ViewManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,11 @@ public static void pick(JTree tree, JBScrollPane scrollPane) {
184184
}
185185
int i = (int) (Math.random() * node.getChildCount());
186186
DefaultMutableTreeNode select = (DefaultMutableTreeNode) node.getChildAt(i);
187-
tree.setSelectionPath(new TreePath(select.getPath()));
188-
Point point = new Point(0, i < 3 ? 0 : (i - 3) * tree.getRowHeight());
187+
188+
TreePath toShowPath = new TreePath(select.getPath());
189+
tree.setSelectionPath(toShowPath);
190+
Rectangle bounds = tree.getPathBounds(toShowPath);
191+
Point point = new Point(0, (int) bounds.getY());
189192
JViewport viewport = scrollPane.getViewport();
190193
viewport.setViewPosition(point);
191194
return;

src/main/java/com/shuzijun/leetcode/plugin/utils/HttpRequestUtils.java

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.shuzijun.leetcode.plugin.utils;
22

3-
import com.intellij.util.io.HttpRequests;
3+
import com.shuzijun.leetcode.plugin.utils.io.HttpRequests;
44
import org.apache.commons.lang3.StringUtils;
55
import org.apache.http.HttpHeaders;
66
import org.jetbrains.annotations.NotNull;
@@ -15,40 +15,40 @@
1515
*/
1616
public 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

Comments
 (0)