Arquivo json usando o curl não valida na api restful
27/11/2020
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)