0

Sample Request Body as Json to send through the GET request for external API.

Below is sample json need to be added in Request Body to send through GET request to external API: '''

        {"nameidentify":["Name-1","Name-2","Name-3"]}
                
         '''
        
         'Assume i am getting values from one API like.. "Name-1","Name-2","Name-3" those values i need to 
      pass to other API through GET request.For example below i am hardcoding the values for reference...'
        
         
        '''
        String[] namesArray={"Name-1","Name-2","Name-3"}
            JSONObject jsobObject=new JSONObject();
            jsonObject.put("nameidentify",namesArray);
            
            HttpHeaders headers=new HttpHeaders();
            headers.add("Accept",MediaType.APPLICATION_JSON);
            headers.add("Content-Type",MediaType.APPLICATION_JSON);
            
            HttpEntity<String> otherentity=new HttpEntity<>(jsobObject.toString(),headers);
            
            


List<Map>getnameResponse=restTemplate.
exchange(externalAPIurl,HttpMethod.GET
,otherentity,ArrayList.class)
.getBody();
             
          

I am getting 400 Bad Request with the above code, when i am making call to external API. May be body they are not receiving. Can any one provide some ideas on this.Thanks in Advance... '''

Akhilesh
  • 1
  • 7

1 Answers1

0

Please code might help. This works for me, From "res" get your pojo back.

import org.springframework.web.client.RestTemplate;
import com.google.gson.JsonObject;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;


RestTemplate restTemplate = new RestTemplate();
            
String url = "<external api url>";
            
JsonObject jsobObject=new JsonObject();
jsobObject.addProperty("someJsonProperty", "someJsonPropertyValue");
HttpHeaders headers=new HttpHeaders();
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("Content-Type",MediaType.APPLICATION_JSON.toString());
            
HttpEntity<String> httpEntity = new HttpEntity<>(jsobObject.toString(), headers);
            
String res = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class).getBody();