How to Implement GET and POST Requests With Java [Snippet]

DZone 's Guide to

How to Implement GET and POST Requests With Java [Snippet]

Want to learn more about implementing GET and POST requests in Java? Check out this code to learn how to use the GET and POST endpoints.

· Java Zone ·
Free Resource

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 {

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.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) {
        } in .close();
        // print result
        System.out.println("JSON String Result " + 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}";
    URL obj = new URL("https://jsonplaceholder.typicode.com/posts");
    HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
    postConnection.setRequestProperty("userId", "a1bcdefgh");
    postConnection.setRequestProperty("Content-Type", "application/json");

    OutputStream os = postConnection.getOutputStream();

    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(
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in .readLine()) != null) {
        } in .close();

        // print result
    } 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: 

Image title

Hope this helps. Happy Coding!!

webservice testing ,restful api ,restful api testing ,java ,get ,post ,endpoints

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}