Http Client in Mercury
Here’s an idiomatic Java example demonstrating an HTTP client, based on the concept shown in the Go example:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpClientExample {
public static void main(String[] args) {
try {
// Create a URL object for the target website
URL url = new URL("https://gobyexample.com");
// Open a connection to the URL
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// Set the request method to GET
connection.setRequestMethod("GET");
// Get the response code
int responseCode = connection.getResponseCode();
System.out.println("Response status: " + responseCode + " " + connection.getResponseMessage());
// Read the response body
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
int lineCount = 0;
while ((line = reader.readLine()) != null && lineCount < 5) {
System.out.println(line);
lineCount++;
}
// Close the reader and disconnect
reader.close();
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
This Java example demonstrates how to create a simple HTTP client using the java.net
package. Here’s a breakdown of the code:
We import necessary classes from
java.io
andjava.net
packages.In the
main
method, we wrap our code in a try-catch block to handle potential exceptions.We create a
URL
object with the target website’s address.We open a connection to the URL using
url.openConnection()
and cast it toHttpURLConnection
.We set the request method to GET using
setRequestMethod("GET")
.We get and print the response status code and message.
To read the response body, we create a
BufferedReader
that reads from the connection’s input stream.We read and print the first 5 lines of the response body using a while loop.
Finally, we close the reader and disconnect the connection.
To run this program:
- Save the code in a file named
HttpClientExample.java
. - Compile the code:
javac HttpClientExample.java
- Run the compiled program:
java HttpClientExample
This example demonstrates how to make an HTTP GET request and process the response in Java. It uses the built-in HttpURLConnection
class, which is suitable for simple HTTP requests. For more advanced HTTP client functionality, you might consider using libraries like Apache HttpClient or OkHttp.
Remember to handle exceptions appropriately in production code and consider factors like connection timeouts and proper resource management.