Arquivo json usando o curl não valida na api restful
Estou enviando uma requisição post para uma api restful via curl, e por algum motivo o data (string json) está indo em formato errado. Já coloquei entre aspas simples, aspas duplas, fiz o escapa dentro da string, faço o system.out e sai perfeita, mas a API me devolve uma mensagem assim:
{"code":"240022","code_detail":"Formato inválido para o campo "parameters". Deve-se utilizar um objeto JSON: {"parameter":"value"}","body":null,"request_unique":"4064529","warning":[],"details":null}
Ex. do meu json: {"contact-list_code":"1","contact_code":"1"}
E abaixo meu código
{"code":"240022","code_detail":"Formato inválido para o campo "parameters". Deve-se utilizar um objeto JSON: {"parameter":"value"}","body":null,"request_unique":"4064529","warning":[],"details":null}
Ex. do meu json: {"contact-list_code":"1","contact_code":"1"}
E abaixo meu código
HashMap<String, String> mapaContato = new HashMap<>();
mapaContato.put("contact-list_code", "1");
mapaContato.put("contact_code", "1");
JSONObject json = new JSONObject(mapaContato);
String token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
System.out.println(json.toString());
String command = "curl --header "auth-token: " + token + "" --header "Content-Type: application/json; charset=utf-8" --data "" + json.toString() + "" https://api.dinamize.com/emkt/contact/get";
System.out.println(command);
try {
Process process = Runtime.getRuntime().exec(command);
// retorno
Reader in = new BufferedReader(new InputStreamReader(process.getInputStream(), "utf-8"));
StringBuilder sb = new StringBuilder();
for (int c; (c = in.read()) >= 0;) {
sb.append((char) c);
}
System.out.println("Teste retorno: " + sb.toString());
JSONObject json2 = new JSONObject(sb.toString());
System.out.println("Teste leitura: " + json2.toString());
// resposta
/*BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
String response=null;
while ((line = reader.readLine()) != null) {
response += line;
}
System.out.println(response);*/
process.destroy();
} catch (IOException ex) {
Logger.getLogger(ComercialBean.class.getName()).log(Level.SEVERE, null, ex);
}
Bruno Andrade
Curtidas 0