/**
* @see https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection.html
* @see https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html
* @see https://www.baeldung.com/java-http-request
* @see https://www.baeldung.com/httpurlconnection-post
*/
import java.net.*;
import java.io.*;
public class HttpClient {
public static void main(String[] args) {
try {
URL url = new URL("https://example.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// con.setRequestMethod("POST");
// con.setRequestProperty("Content-Type", "application/json");
// con.setConnectTimeout(5000);
// con.setReadTimeout(20000);
// Send RequestBody Option
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json");
String jsonInputString = "{\"key\": \"value\", \"number\": 42, \"flag\": true}";
try(OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// Read the Response From Input Stream
BufferedReader in = new BufferedReader(
new InputStreamReader(
con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
} catch (MalformedURLException e) {
System.out.println("The specified URL is malformed: " + e.getMessage());
} catch (IOException e) {
System.out.println("An I/O error occurs: " + e.getMessage());
}
}
}
version: 4.x
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.apache.http.conn.ConnectTimeoutException;
import java.net.SocketTimeoutException;
import java.io.IOException;
public class ApacheHttpClient {
public static void main(String[] args) {
RequestConfig config = RequestConfig.custom()
// .setConnectTimeout(5000)
// .setConnectionRequestTimeout(5000)
// .setSocketTimeout(20000)
.build();
try (final CloseableHttpClient httpclient =
HttpClientBuilder.create().setDefaultRequestConfig(config).build()) {
final HttpGet httpget = new HttpGet("http://www.yidas.com");
// System.out.println("Executing request " + httpget.getMethod() + " " + httpget.getURI());
CloseableHttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity);
System.out.println(responseBody);
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (ConnectTimeoutException e) {
// Handle connect timeout
e.printStackTrace();
} catch (SocketTimeoutException e) {
// Handle read timeout
e.printStackTrace();
}
}
}
Package org.springframework.boot:spring-boot-starter-web
This HTTP client is based on Apache HttpClient
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class SpringHttpClient {
public static void main(String[] args) {
final HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setConnectTimeout(000);
RestTemplate restTemplate=new RestTemplate(requestFactory);
String responseBody = restTemplate.getForObject("http://dns.yidas.com", String.class);
System.out.println(responseBody);
}
}