Sto provando a richiamare una chiamata di riposo usando resto assicurato. La mia API accetta, "application/json"
come tipo di contenuto e ho bisogno di impostare la chiamata. Ho impostato il tipo di contenuto come indicato di seguito.impostazione tipo di contenuto in riposo assicurato
Opzione 1
Response resp1 = given().log().all().header("Content-Type","application/json")
.body(inputPayLoad).when().post(addUserUrl);
System.out.println("Status code - " +resp1.getStatusCode());
Opzione 2
Response resp1 = given().log().all().contentType("application/json")
.body(inputPayLoad).when().post(addUserUrl);
La risposta che ottengo è "415" (indica che "tipo di supporto non supportato").
Ho provato a invocare la stessa API usando il semplice codice Java e funziona. Per qualche misterioso motivo, non riesco a farlo funzionare attraverso RA.
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(addUserUrl);
StringEntity input = new StringEntity(inputPayLoad);
input.setContentType("application/json");
post.setEntity(input);
HttpResponse response = client.execute(post);
System.out.println(response.getEntity().getContent());
/*
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println("Output -- " +line);
}
Sarebbe possibile confrontare le intestazioni delle richieste dai primi 2 esempi per richiedere le intestazioni dall'ultimo esempio? – spg
Opzione 1: Metodo di richiesta: \t POST Percorso richiesta: \t http: //10.75.43.46: 7001/supplierapp-guerra/pim/adduser Richiesta params: \t parametri di query: \t params Forma: \t params Percorso: \t intestazioni: \t \t Content-Type = application/json Cookies: \t \t Opzione 2: metodo di richiesta: \t POST richiesta di traccia: \t http://10.75.43.46:7001/supplierapp-war/pim/addUser Richiesta params: \t params query: \t params Forma: \t params Percorso: \t intestazioni: \t \t Content-Type = application/json Cookies: \t \t –
TechRookie
richiesta inviata dal HttpClient: Contenuto: Content- Tipo: application/json Lunghezza contenuto: 203 Contenuto: [email protected] contenuto Codifica: null Nota: Ho usato il seguente snippet per ottenere informazioni sull'intestazione da httpClient. System.out.println ("Tipo di contenuto:" + input.getContentType()); System.out.println ("Lunghezza contenuto:" + input.getContentLength()); System.out.println ("Contenuto:" + input.getContent()); System.out.println ("codifica del contenuto:" + input.getContentEncoding()); – TechRookie