通常状况下咱们须要使用HttpClient时可供选择的技术有:
一、HttpURLConnection
二、Apache HttpClient
其余的除了写Socket 我都没有用过了。
偶然的机会发现Jetty 里面也自带了一个HttpClient,而且支持事件触发的处理方式。 javascript
- HttpClient client = new HttpClient();
- client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
- try
- {
- client.start();
- }
- catch (Exception e)
- {
- throw new ServletException(e);
- }
-
- // create the exchange object, which lets you define where you want to go
- // and what you want to do once you get a response
- ContentExchange exchange = new ContentExchange()
- {
- // define the callback method to process the response when you get it back
- protected void onResponseComplete() throws IOException
- {
- super.onResponseComplete();
- String responseContent = this.getResponseContent();
-
- // do something with the response content
- ...
- }
- };
-
- exchange.setMethod("GET");
- exchange.setURL("http://www.example.com/");
-
- // start the exchange
- client.send(exchange);
- public static void main(String[] args) throws Exception {
- HttpClient httpClient = new HttpClient();
- // set up httpClient
- httpClient.start();
- ContentExchange contentExchange = new ContentExchange();
- httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
- contentExchange.setURL("http://www.iteye.com");
- httpClient.send(contentExchange);
- contentExchange.waitForDone();
- System.err.println("Response status: "
- + contentExchange.getResponseStatus());
- byte[] responseContentBytes = contentExchange.getResponseContentBytes();
- System.out.println(new String (responseContentBytes,"UTF-8"));
- }