Tag: httpclient

CloseableHttpResponse.close()和httpPost.releaseConnection()之间有什么区别?

CloseableHttpResponse response = null; try { // do some thing …. HttpPost request = new HttpPost(“some url”); response = getHttpClient().execute(request); // do some other thing …. } catch(Exception e) { // deal with exception } finally { if(response != null) { try { response.close(); // (1) } catch(Exception e) {} request.releaseConnection(); // (2) } } […]

如何使用Java登录网站

我想访问网站https://myoffice.bt.com的某些页面,这需要使用java进行用户身份validation。 我们必须先登录才能访问页面。 我有以下代码的wriiten。 package root; import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class Url { public static void main(String[] args) throws IOException { HttpClient client = new HttpClient(); client.getParams().setParameter( HttpMethodParams.USER_AGENT, “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2” ); client.getState().setCredentials( new AuthScope(“https://myoffice.bt.com”, 443, AuthScope.ANY_REALM), new UsernamePasswordCredentials(“username”, “password”) […]

常见的HTTP客户端和代理

我正在使用apache的常见httpclient库。 是否可以通过代理发出HTTP请求? 更具体地说,我需要使用代理列表来处理multithreadingPOST请求(现在我正在使用单线程GET请求进行测试)。 我试过用: httpclient.getHostConfiguration().setProxy(“67.177.104.230”, 58720); 我得到该代码的错误: 21.03.2012. 20:49:17 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect 21.03.2012. 20:49:17 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry INFO: Retrying request 21.03.2012. 20:49:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect 21.03.2012. 20:49:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry INFO: Retrying request 21.03.2012. 20:49:21 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry […]

HttpClient为Kerberos身份validation设置凭据

我正在尝试使用kerberos / HTTP主机进行身份validation。 使用Apache HttpClient作为我的客户端 – 以及此源的略微修改版本。 我的Kerberos身份validation完全正常,我希望知道如何以编程方式设置登录凭据。 目前,凭据是通过控制台手动输入的,但我希望在运行时由我选择。 [实际上,我希望自动化并加载测试具有大量用户的服务器。 ]。 编辑:这是相关部分的代码片段: .. NegotiateSchemeFactory nsf = new NegotiateSchemeFactory(); httpclient.getAuthSchemes().register(AuthPolicy.SPNEGO, nsf); Credentials use_jaas_creds = new Credentials() { public String getPassword() { return null; } public Principal getUserPrincipal() { return null; } }; httpclient.getCredentialsProvider().setCredentials( new AuthScope(null, -1, null), use_jaas_creds); HttpUriRequest request = new HttpGet(“http://kerberoshost/”); HttpResponse response = […]

Android中的Http cookie商店

我正在为该网站开发一个授权的Android客户端。 我有一个post方法。 我的代码示例: public void run() { handler.sendMessage(Message.obtain(handler, HttpConnection.DID_START)); httpClient = new DefaultHttpClient(); HttpConnectionParams.setSoTimeout(httpClient.getParams(), 25000); HttpResponse response = null; try{ switch (method){ case POST: HttpPost httpPost = new HttpPost(url); httpPost.setHeaders(headers); if (data != null) httpPost.setEntity(new StringEntity(data)); response = httpClient.execute(httpPost); break; } processEntity(response); }catch(Exception e){ handler.sendMessage(Message.obtain(handler, HttpConnection.DID_ERROR, e)); } ConnectionManager.getInstanse().didComplete(this); } 如何保持cookies?

使用HttpClient 4.0.1与x509证书进行相互身份validation

有没有人有关于如何使用HTTPClient 4.0.1通过x509证书执行客户端身份validation的任何友好提示? 感谢您的时间。

来自commons-httpclient-3.1的URIUtil.encodePath发生了什么?

我想做问题724043中描述的内容 ,即编码URI的路径组件。 建议这样做的是来自Commons HttpClient 3.1的URIUtil 。 不幸的是,这个类似乎已经从最新版本的HttpClient中消失了。 来自HttpClient 4.1的类似命名的类URIUtils不提供相同的function。 这个类/方法是否被移动到我不知道的其他库或者它刚刚消失了? 我最好只将3.1版本中的类复制到我的代码中,还是有更简单的方法?

通过HttpClient接受所有Cookie

所以这是我的应用程序的设置方式: 1.)登录活动。 2.)登录后,可能会启动其他活动,这些活动使用需要登录时发送的cookie的PHP脚本。 我在我的应用程序中使用一个HttpClient来确保使用相同的cookie,但我的问题是我收到了3个cookie中的2个被拒绝。 我不关心cookie的有效性,但我确实需要它们被接受。 我尝试设置CookiePolicy ,但这也没有用。 这就是logcat所说的: 11-26 10:33:57.613: WARN/ResponseProcessCookies(271): Cookie rejected: “[version: 0] [name: cookie_user_id][value: 1][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]”. Illegal path attribute “trackallthethings”. Path of origin: “/mobile-api/login.php” 11-26 10:33:57.593: WARN/ResponseProcessCookies(271): Cookie rejected: “[version: 0][name: cookie_session_id][value: 1985208971][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]”. Illegal path attribute “trackallthethings”. […]

java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):connect

您好我使用Apache HTTP Client 4.0基于HTTPS协议上传服务器上的一些文件。 上传的应用程序全天候运行。 今天突然间它开始抛出这个exception – java.net.SocketException: No buffer space available (maximum connections reached?): connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:333) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:101) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:381) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) 谁能帮帮我吗? 我完全不知道发生了什么事? […]

使用HttpClient 4.1.1避免循环重定向

如何使用HttpClient 4.1.1避免循环重定向。 因为我得到这样的错误: – executing requestGET http://home.somehost.com/Mynet/pages/cHome.xhtml HTTP/1.1 org.apache.http.client.ClientProtocolException at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) at edu.uci.ics.crawler4j.url.WebURL.setURL(WebURL.java:122) at edu.uci.ics.crawler4j.crawler.CrawlController.addSeed(CrawlController.java:207) at edu.uci.ics.crawler4j.example.advanced.Controller.main(Controller.java:31) Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to ‘http://home.somehost.com/Mynet/pages/Home.xhtml’ at org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:168) at org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:193) at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1021) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:482) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) 这是我的代码…… DefaultHttpClient client = null; try { // Set url //URI uri = new URI(url.toString()); client = new DefaultHttpClient(); […]