How to Implement GET and POST Requests With Java [Snippet]
We can call the GET or POST requests using a simple Java program. I have used "https://jsonplaceholder.typicode.com" to make GET and POST calls. This website provides simple get/post/put/delete endpoints. For demonstration purposes, I am only using GET and POST endpoints.
We will write a main method as below :
public static void main(String[] args) throws IOException {
GetAndPost.MyGETRequest();
GetAndPost.MyPOSTRequest();
}
For a GET request, we can use https://jsonplaceholder.typicode.com/posts/1, which is shown below:
public static void MyGETRequest() throws IOException {
URL urlForGetRequest = new URL("https://jsonplaceholder.typicode.com/posts/1");
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForGetRequest.openConnection();
conection.setRequestMethod("GET");
conection.setRequestProperty("userId", "a1bcdef"); // set userId its a sample here
int responseCode = conection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(
new InputStreamReader(conection.getInputStream()));
StringBuffer response = new StringBuffer();
while ((readLine = in .readLine()) != null) {
response.append(readLine);
} in .close();
// print result
System.out.println("JSON String Result " + response.toString());
//GetAndPost.POSTRequest(response.toString());
} else {
System.out.println("GET NOT WORKED");
}
}
We will get the following output:
JSON String Result {
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
For the post request, we will be using https://jsonplaceholder.typicode.com/posts, as shown below
public static void POSTRequest() throws IOException {
final String POST_PARAMS = "{\n" + "\"userId\": 101,\r\n" +
" \"id\": 101,\r\n" +
" \"title\": \"Test Title\",\r\n" +
" \"body\": \"Test Body\"" + "\n}";
System.out.println(POST_PARAMS);
URL obj = new URL("https://jsonplaceholder.typicode.com/posts");
HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
postConnection.setRequestMethod("POST");
postConnection.setRequestProperty("userId", "a1bcdefgh");
postConnection.setRequestProperty("Content-Type", "application/json");
postConnection.setDoOutput(true);
OutputStream os = postConnection.getOutputStream();
os.write(POST_PARAMS.getBytes());
os.flush();
os.close();
int responseCode = postConnection.getResponseCode();
System.out.println("POST Response Code : " + responseCode);
System.out.println("POST Response Message : " + postConnection.getResponseMessage());
if (responseCode == HttpURLConnection.HTTP_CREATED) { //success
BufferedReader in = new BufferedReader(new InputStreamReader(
postConnection.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in .readLine()) != null) {
response.append(inputLine);
} in .close();
// print result
System.out.println(response.toString());
} else {
System.out.println("POST NOT WORKED");
}
}
Then, we will get the below output:
"userId": 101,
"id": 101,
"title": "Test Title",
"body": "Test Body"
}
POST Response Code : 201
POST Response Message : Created
{ "userId": 101, "id": 101, "title": "Test Title", "body": "Test Body"}
I have used the below imports from java.net.* packages:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
We can also verify the same from the POSTMAN console :
1. For the GET request:
2. POST request:
Hope this helps. Happy Coding!!