- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写了一个JAVA爬虫,尝试使用proxy
,忽略任何https认证
。
但它不适用于
java.lang.UnsupportedOperationException (at org.apache.http.impl.client.InternalHttpClient.getParams)
我搜索了解决方案,大多说我的HttpClient
版本旧,但我从apache网站更新到最新版本,还是出现了这个异常。
以下代码是我的爬虫代码:
public static void main(String[] args) {
try{
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}
};
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, trustAllCerts, null);
LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx);
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build();
HttpHost proxy = new HttpHost("127.0.0.1", 8888,"http");
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpGet request = new HttpGet("https://www.javaworld.com.tw/jute/post/view?bid=29&id=312144");
CloseableHttpResponse response = client.execute(request);
String entity = EntityUtils.toString(response.getEntity(), "utf-8");
System.out.println(entity);
}catch (Exception e) {
e.printStackTrace();
}
}
非常感谢任何解决方案。
最佳答案
我遇到了同样的问题,这是因为该方法已被弃用并且在最新版本中不可用。
我试过下面的代码,它对我有用
public static HttpClient createClient() {
try {
SSLContextBuilder builder = new SSLContextBuilder();
builder.useProtocol("TLSv1.2");
builder.loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
return true;
}
});
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
builder.build());
HttpClientBuilder hcBuilder = HttpClients.custom();
HttpHost httpProxy = new HttpHost(bundle.getString("PROXY_HOST"), Integer.parseInt(bundle.getString("PROXY_PORT")));
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(httpProxy);
hcBuilder.setRoutePlanner(routePlanner);
CloseableHttpClient httpclient = hcBuilder
.setSSLSocketFactory(sslsf).build();
return httpclient;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
关于java - InternalHttpClient.getParams() 与 UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46842037/
我在 TypeError : props.navigation.getParam 上遇到问题不是函数。在 (props.navigation.getParam('name') .我正在使用 react
我试图根据我发送的数据从服务器获取响应,我能够从服务器获取响应,但服务器似乎没有接收 getParams() 中的值。 String url = "myUrl"; Req
如何从多复选框选项中获取多值数据?以下是我的可以选择多个值的复选框 html 代码 Parking:
请问,Volley 会自动将我的 GET 参数添加到 URL 中吗?对我来说,它不起作用,而且在查看源代码时,我只是找不到任何对 getParams 方法的调用。那么我应该自己构建 URL 吗?完全没
我正在尝试使用 Android 中的 Volley 将登录参数发布到我的服务器。第一次登录时它会发送参数,但是在我注销并尝试再次登录后,它不会调用 getparams,而是发送以前的登录参数到服务器。
我正在尝试使用 Android 中的 Volley 将一些参数发布到我的 Rails API。这是代码: 对于 Request.Method,我尝试了 POST/GET/PUT 没有任何效果。 我试图
我已经将我的项目文件移动到另一台服务器上,现在我在我的所有页面中都得到了这个,就像我错过了一些配置一样,有人知道我能做什么吗? 我正在使用 Zend Framework 1.11.11 ! 您需要哪些
问题总结 我在 React Navigation 中使用功能组件,并使用我根据他们的 documentation 创建的 NavigationService 组件中的 NavigationServic
我写了一个JAVA爬虫,尝试使用proxy,忽略任何https认证。 但它不适用于 java.lang.UnsupportedOperationException (at org.apache.htt
谁能解释功能上和好/坏实践方面的差异,为什么其中一个应该优先于另一个: $getParam = Mage::app()->getRequest()->getParam('getparam'); v $
我正在使用 apache-httpclient-4.3。我会分析一个http请求,特别是查询字符串参数,但是 @Deprecated public HttpParams getParams() Dep
本文整理了Java中redis.clients.jedis.ZParams.getParams()方法的一些代码示例,展示了ZParams.getParams()的具体用法。这些代码示例主要来源于Gi
我相信这非常简单。我们有一个对 Controller 的 ajax 调用。该调用传入一个值对 - 一个标识符和一个值。我需要知道标识符的名称和值,以便我可以这样做: switch ($id
我正在努力从 url 检索制造商属性 localhost/magento/index.php/test-pro.html?manufacturer/4 所以我使用了$this->getRequest(
我有多个名称相同但值不同的按钮。 单击按钮时,我试图获取按钮的值并找出单击了哪个按钮。我尝试在 JSP 页面中使用 request.getParameter("disksheet") 来执行此操
friend 们。我的带参数的 volley POST 请求有问题。我需要从远程 MySQL DB 获取数据并将其显示在回收器 View 中。为此,我使用了 Volley 网络请求。如果没有参数,它会
我为此苦苦挣扎了一段时间。以下代码片段为某些网站返回 None,即使字符集出现在 header 的元数据中,因此它似乎不是获取网页正确字符集的可靠方法。 conn = urllib2.urlopen(
这就是应该发生的事情: 当你只写“getpar”时,它意味着给出选项: 但是对我来说,当我这样做时 什么也没发生 它抛出一个 AuthFailureError package com.name.nam
我在使用 OpenCV 和 Python 创建人脸识别系统时遇到了一些问题。我试图使用 Philipp Wagner 提供的文档,我有以下代码: import os import sys import
org.apache.http.client.methods.HttpGet; HttpGet method = new HttpGet(url.toExternalForm()); method.g
我是一名优秀的程序员,十分优秀!