Java send request với Apache HttpComponents, (Áp dụng tạo ứng dụng download giống IDM)
This post hasn't been updated for 6 years
Nguồn https://stackjava.com/httpcomponents/gui-request-voi-httpclient.html
Apache HttpComponents là gì?
Apache HttpComponent là một dự án (thư viện) dùng để gửi http request và các giao thức liên quan bằng ngôn ngữ Java.
Apache HttpComponent được tạo bảo Apache, viết bằng Java và miễn phí.
(Xem thêm các thư viện khác của Apache: https://stackjava.com/category/apache)
Với thư viện Apache HttpComponent bạn có thể dễ dàng tạo các ứng dụng REST client như Postman, kiểm thử hiệu năng giống như Apache JMeter, thực hiện demo ví dụ DDOS (gửi nhiều request tới 1 server)…
Các thành phần của HttpComonents
Apache HttpComponents là gì? Hướng dẫn sử dụng Apache HttpComponents. HttpCore là một tập hợp các thành phần tương ứng với xử lý HTTP ở mức tối thiểu như định nghĩa request, response…
HttpClient được cài đặt dựa trên HttpCore, được sử dụng để quản lý trạng thái, kết nối HTTP
Asynch HttpClient cài đặt dựa trên HttpCore và HttpClient dùng để xử lý những trường hợp có nhiều kết nối đồng thời.
Commons HttpClient hay phiên bản HttpClient 3.x. (Hiện tại được khuyên dùng chuyển sang HttpClient 4.x.)
Code ví dụ
Ví dụ gửi http GET request với HttpClient Fluent API
public class FluentGet {
public static void main(String[] args) throws ClientProtocolException, IOException {
Response response = Request.Get("https://www.google.com.vn/").execute();
HttpResponse httpResponse = response.returnResponse();
System.out.println("Protocol: " + httpResponse.getProtocolVersion());
System.out.println("Status:" + httpResponse.getStatusLine().toString());
System.out.println("Content type:" + httpResponse.getEntity().getContentType());
System.out.println("Locale:" + httpResponse.getLocale());
System.out.println("Headers:");
for(Header header : httpResponse.getAllHeaders()) {
System.out.println(" " + header.getName()+": " + header.getValue());
}
System.out.println("Content:");
String content = IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8");
// String content = response.returnContent().asString();
System.out.println(content);
}
}
Ví dụ gửi http POST request với HttpClient Fluent API
public static void basicPost(String url) throws ClientProtocolException, IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", "your_username"));
params.add(new BasicNameValuePair("password", "your_password"));
httpPost.setEntity(new UrlEncodedFormEntity(params));
CloseableHttpResponse response = client.execute(httpPost);
client.close();
}
Code ví dụ gửi http get request bằng Java (HttpClient).
Code ví dụ download file bằng Java (HttpClient) (Áp dụng để tạo phần mềm download file)
Code ví dụ gửi http request (method POST: html form, json data)
Code ví dụ upload file với HttpClient (Áp dụng để tạo phần mềm upload file)
Nguồn https://stackjava.com/httpcomponents/gui-request-voi-httpclient.html
All Rights Reserved