Skip to content

Commit 80c16c9

Browse files
committed
Replace the proxy mode
1 parent c38eb47 commit 80c16c9

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ public static List<Question> getQuestionService() {
4848
String body = EntityUtils.toString(response.getEntity(), "UTF-8");
4949
questionList = parseQuestion(body);
5050
} catch (IOException e1) {
51-
LogUtils.LOG.error("获取题目内容错误", e1);
51+
LogUtils.LOG.error("Request question list exception:", e1);
5252
}
53+
}else {
54+
LogUtils.LOG.error("Request question list failed, status:" + response == null ? "" : response.getStatusLine().getStatusCode());
5355
}
5456
httpget.abort();
5557

@@ -154,10 +156,10 @@ public static List<Tag> getTags() {
154156
String body = EntityUtils.toString(response.getEntity(), "UTF-8");
155157
tags = parseTag(body);
156158
} catch (IOException e1) {
157-
LogUtils.LOG.error("获取题目分类错误", e1);
159+
LogUtils.LOG.error("Request tags exception", e1);
158160
}
159161
} else {
160-
LogUtils.LOG.error("获取题目分类网络错误");
162+
LogUtils.LOG.error("Request tags failed, status:" + response == null ? "" : response.getStatusLine().getStatusCode());
161163
}
162164
httpget.abort();
163165

@@ -174,10 +176,10 @@ public static List<Tag> getLists() {
174176
String body = EntityUtils.toString(response.getEntity(), "UTF-8");
175177
tags = parseList(body);
176178
} catch (IOException e1) {
177-
LogUtils.LOG.error("获取列表分类错误", e1);
179+
LogUtils.LOG.error("Request Lists exception", e1);
178180
}
179181
} else {
180-
LogUtils.LOG.error("获取列表分类网络错误");
182+
LogUtils.LOG.error("Request Lists failed, status:" + response == null ? "" : response.getStatusLine().getStatusCode());
181183
}
182184
httpget.abort();
183185

src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.shuzijun.leetcode.plugin.model.CodeTypeEnum;
2020
import com.shuzijun.leetcode.plugin.model.Config;
2121
import com.shuzijun.leetcode.plugin.model.Constant;
22+
import com.shuzijun.leetcode.plugin.utils.HttpClientUtils;
2223
import com.shuzijun.leetcode.plugin.utils.MTAUtils;
2324
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
2425
import com.shuzijun.leetcode.plugin.utils.URLUtils;
@@ -57,7 +58,6 @@ public SettingUI() {
5758
setContentPane(mainPanel);
5859
}
5960

60-
6161
public void createUI() {
6262

6363
GridBagLayout giGridBagLayout = new GridBagLayout();
@@ -96,6 +96,7 @@ public void createUI() {
9696
addComponent(passwordField, constraints, 4, 1, 5, 1);
9797

9898
proxyCheckBox.setSelected(false);
99+
proxyCheckBox.setToolTipText("Changes need to log in again");
99100
addComponent(proxyCheckBox, constraints, 6, 1, 7, 1);
100101

101102
addComponent(new JLabel("TempFilePath:"), constraints, 0, 2, 0, 2);
@@ -239,6 +240,9 @@ public void apply() {
239240
config.setCodeType(codeComboBox.getSelectedItem().toString());
240241
config.setUrl(webComboBox.getSelectedItem().toString());
241242
config.setUpdate(updateCheckBox.isSelected());
243+
if (config.getProxy() != proxyCheckBox.isSelected()) {
244+
HttpClientUtils.resetHttpclient();
245+
}
242246
config.setProxy(proxyCheckBox.isSelected());
243247
config.setCustomCode(customCodeBox.isSelected());
244248
config.setCustomFileName(fileNameEditor.getDocument().getText());

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

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

3-
import com.intellij.util.net.HttpConfigurable;
3+
import com.intellij.util.proxy.CommonProxy;
44
import com.shuzijun.leetcode.plugin.model.Config;
55
import com.shuzijun.leetcode.plugin.setting.PersistentConfig;
66
import org.apache.commons.lang.StringUtils;
77
import org.apache.http.Header;
88
import org.apache.http.HttpHeaders;
9-
import org.apache.http.HttpHost;
10-
import org.apache.http.auth.AuthScope;
11-
import org.apache.http.auth.UsernamePasswordCredentials;
12-
import org.apache.http.client.CredentialsProvider;
139
import org.apache.http.client.config.AuthSchemes;
1410
import org.apache.http.client.config.CookieSpecs;
1511
import org.apache.http.client.config.RequestConfig;
@@ -20,13 +16,18 @@
2016
import org.apache.http.client.protocol.HttpClientContext;
2117
import org.apache.http.config.Registry;
2218
import org.apache.http.config.RegistryBuilder;
19+
import org.apache.http.conn.routing.HttpRoutePlanner;
2320
import org.apache.http.conn.socket.ConnectionSocketFactory;
2421
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
2522
import org.apache.http.conn.ssl.NoopHostnameVerifier;
2623
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
2724
import org.apache.http.cookie.Cookie;
28-
import org.apache.http.impl.client.*;
25+
import org.apache.http.impl.client.BasicCookieStore;
26+
import org.apache.http.impl.client.CloseableHttpClient;
27+
import org.apache.http.impl.client.HttpClientBuilder;
28+
import org.apache.http.impl.client.HttpClients;
2929
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
30+
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
3031
import org.apache.http.impl.cookie.BasicClientCookie;
3132
import org.apache.http.message.BasicHeader;
3233

@@ -61,29 +62,22 @@ private static void createHttpClient() {
6162
.setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST))
6263
.setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC));
6364

64-
//proxy
65-
Config config = PersistentConfig.getInstance().getInitConfig();
66-
HttpConfigurable proxySettings = HttpConfigurable.getInstance();
67-
CredentialsProvider provider = null;
68-
if (config != null && config.getProxy() && proxySettings != null && proxySettings.USE_HTTP_PROXY && !proxySettings.PROXY_TYPE_IS_SOCKS) {
69-
HttpHost proxy = new HttpHost(proxySettings.PROXY_HOST, proxySettings.PROXY_PORT, "http");
70-
globalConfigBuilder.setProxy(proxy);
71-
if (proxySettings.PROXY_AUTHENTICATION) {
72-
provider = new BasicCredentialsProvider();
73-
provider.setCredentials(new AuthScope(proxy), new UsernamePasswordCredentials(proxySettings.getProxyLogin(), proxySettings.getPlainProxyPassword()));
74-
}
75-
76-
}
77-
7865

7966
HttpClientBuilder httpClientBuilder = HttpClients.custom()
8067
.setDefaultRequestConfig(globalConfigBuilder.build())
8168
.setDefaultCookieStore(cookieStore)
8269
.setDefaultHeaders(defaultHeader())
8370
.setConnectionManager(getconnectionManager());
84-
if (provider != null) {
85-
httpClientBuilder.setDefaultCredentialsProvider(provider);
71+
72+
//proxy
73+
Config config = PersistentConfig.getInstance().getInitConfig();
74+
75+
if (config != null && config.getProxy()) {
76+
CommonProxy commonProxy = CommonProxy.getInstance();
77+
HttpRoutePlanner routePlanner = new SystemDefaultRoutePlanner(commonProxy);
78+
httpClientBuilder.setRoutePlanner(routePlanner);
8679
}
80+
8781
httpclient = httpClientBuilder.build();
8882

8983
}
@@ -127,7 +121,7 @@ public static CloseableHttpResponse execute(HttpUriRequest httpUriRequest) {
127121
CloseableHttpResponse response = httpclient.execute(httpUriRequest, context);
128122
return response;
129123
} catch (Exception e) {
130-
LogUtils.LOG.error("请求出错:", e);
124+
LogUtils.LOG.error("httpclient request error:", e);
131125
} finally {
132126
}
133127

0 commit comments

Comments
 (0)