Tag: httpclient

java:apache HttpClient>如何禁用重试

我在网站上使用Apache Httpclient进行Ajax调用。 在某些情况下,对外部Web服务的请求失败,通常是: 处理请求时捕获的I / Oexception(java.net.ConnectException):连接超时:连接。 在这种情况下,我经常想跳过重试请求(Httpclient似乎自动执行的操作)。 但是,我找不到任何方法,参数等来跳过重试。 任何人? 谢谢Geert-Jan

如何在Java中使用TLSV1或SSLV3进行第一次握手(Client Hello)?

当我执行以下代码时,为什么第一次握手是SSLv2,而不是TLSv1或SSLv3? 如何在Java中使用TLSV1或SSLV3进行首次握手? String host = “www.google.com”; String url = “/adsense/?sourceid=aso&subid=ZH_CN-ET-AS-ADSBY6&medium=link&hl=zh_CN”; SSLContext ctx = SSLContext.getInstance(“TLS”); ctx.init(new KeyManager[0], new TrustManager[] {new DefaultTrustManager()}, new SecureRandom()); SSLContext.setDefault(ctx); SSLSocketFactory factory = ctx.getSocketFactory(); Socket socket = factory.createSocket(host, 443); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.write(“GET ” + url + ” HTTP/1.0″); out.flush(); out.close(); in.close();

用于apache httpclient 4的UNICODE中的URI编码

我正在使用apache http client 4进行所有的Web访问。 这意味着我需要做的每个查询都必须通过URI语法检查。 我尝试访问的其中一个站点使用UNICODE作为URL GET参数编码,即: http://maya.tase.co.il/bursa/index.asp?http://maya.tase.co.il/bursa/index.asp?view=search&company_group=147&srh_txt=%u05E0%u05D9%u05D1&arg_comp=&srh_from = 2009-06-01&srh_until = 2010-02-16&srh_anaf = -1&srh_event = 9999&is_urgent = 0&srh_company_press = (参数“srh_txt =%u05E0%u05D9%u05D1”在UNICODE中编码srh_txt =ניב) 问题是URI不支持UNICODE编码(它只支持UTF-8)这里真正的大问题是,这个站点期望它的序列是用UNICODE编码的,所以任何尝试使用String.format转换url( “ http://…srh_txt=%s& …”,URLEncoder.encode(“ניב”,“UTF8”))会产生一个合法的url,可用于构建URI但网站响应为它带有错误消息,因为它不是它所期望的编码。 顺便说一句,URL对象可以创建,甚至用于使用未转换的URL连接到网站。 有没有办法用非UTF-8编码创建URI? 有没有办法使用apache httpclient 4与常规URL(而不是URI)? 谢谢,Niv

使用HttpEntity的consumeContent()

在Android中使用class或org.apache.http.HttpEntity的consumeContent()的目的是什么? 什么时候应该使用它可以有副作用吗? 我正在尝试修复一个应用程序中的错误,该应用程序使用HttpClient向服务器发出请求,有时如果某个特定请求失败,它将随后失败,尽管互联网是正常的。 应用程序在输入流读取结束时调用此方法。

使用HttpClient模拟HTTP POST的问题

我正在尝试使用HttpClient以编程方式将HTTP Post请求发送到http://ojp.nationalrail.co.uk/en/s/planjourney/query,但它并不喜欢我发送它的请求。 我从Chrome浏览器发送的内容中复制了标题和正文,因此它完全相同,但它不像我发送的内容,因为HTML提到有错误。 Sorry, something went wrong There is a problem with the page you are trying to access. It is possible that it was either moved, it doesn’t exist or we are experiencing some technical difficulties. We are sorry for the inconvenience. 这是我使用HttpClient的Java程序: package com.tixsnif; import org.apache.http.*; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import […]

使用httpclient有一种方法来获取带有HEAD请求的页面的字符集吗?

我正在使用httpclient库做一个基本的HEAD请求。 我很好奇我怎么能得到apache返回的字符集Eg:utf-8,iso-8859-1等等…谢谢! HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 2000); HttpConnectionParams.setSoTimeout(httpParams, 2000); DefaultHttpClient httpclient = new DefaultHttpClient(httpParams); httpclient.getParams().setParameter(“http.useragent”, “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”); HttpContext localContext = new BasicHttpContext(); httpget = new HttpHead(url); HttpResponse response = httpclient.execute(httpget, localContext); this.sparrowResult.statusCode = response.getStatusLine().getStatusCode(); 工作结果更新 Header contentType = response.getFirstHeader(“Content-Type”); String charset= contentType.getValue();

Solr – 使用Httpclient实例化HttpSolrServer

我需要连接到代理服务器后面的solr服务器(?)。 以下我试过(没什么特别的): SolrServer server = new HttpSolrServer(“https://urltosolr/solr”); try { SolrPingResponse pingResponse = server.ping(); } catch (SolrServerException e) { …. } 堆栈跟踪: org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: https://urltosolr/solr … Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 之后我尝试了HttpSolrServer的其他构造函数,但我不知道如何正确地将用户名和密码设置为HttpClient。 有人可以帮忙吗?

无法创建新的PoolingHttpClientConnectionManager

我的程序包含以下行,并且此时挂起,我不太清楚为什么。 PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); 在Eclipse中调试时,如果我尝试在Display视图中评估“new PoolingHttpClientConnectionManager()”,我会收到以下错误: java.lang.NoClassDefFoundError: org/apache/http/config/Lookup at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) …omitted – referring to specific lines in code… at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.apache.http.config.Lookup at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) […]

Curl cacert与Java HttpClient相当

我想知道我是否能够使用curl建立连接,如下面的命令, curl –cacert some.pem https://someurl.com/resource 如何将其转换为httpclient代码? 我知道我需要转换pem文件并创建一个新的密钥库等等。但是所有这些openssl,keytool命令,密钥库,信任库让我困惑,我不知道使用哪个以及使用哪个顺序。

无法实例化HttpClient类型

我已将.jars添加到我的库中,我还可以在JAR中实例化其他类。 是什么赋予了? 我试过清理项目等。 这是编译时错误。 Eclipse不会让我实例化它。 我正在导入正确的库,而不是sun版本,并使用他们的教程指定的默认构造函数 HttpClient client = new HttpClient(); (Eclipse,mac,Apache HTTP,“HttpClient 4.0.1(GA)”从这里下载)