Bom dia pessoal, tô tentando usar uma API aqui, mas sem sucesso. Eu envio os parametros do request (chatId e body), porém tenho um retorno de que não preenchi o body.
Método de envio usando GSON:
public void sendMessage(String telefone) {
try {
Gson g = new Gson();
Message msg = new Message();
Type userType = new TypeToken<Message>() {
}.getType();
msg.setBody("Test Message");
msg.setChatId(telefone + "@c.us");
String json = g.toJson(msg, userType);
String url = url_principal + "sendMessage?" + token;
sendPost(url, json, "POST");
} catch (Exception ex) {
ex.printStackTrace();
}
}
Saída:
Enviando 'POST' requisição para a URL: https://eu24.chat-api.com/instance57720/sendMessage?token=xxxxxxxxx
Parâmetros do POST: {"chatId":"5511982743910@c.us","body":"Test Message"}
Resposta: 200
{"sent":false,"message":"Message was not sent: empty body. Please provide message text in body parameter in JSON POST."}
private void sendPost(String url, String urlParameters, String method) throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod(method);
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded" + ";charset=UTF-8");
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nEnviando '" + method + "' requisição para a URL: " + url);
System.out.println("Parâmetros do " + method + ": " + urlParameters);
System.out.println("Resposta: " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
Esqueci de mencionar que o código funciona perfeitamente com minha API local, e com algumas outras APIs, mas com o Pagseguro não funcionou, e esse também não.
Opa Tuna, beleza e você? Cara, Eu dei uma olhada no site, mas o código tá parecido com o meu, tenho até algumas coisas a mais, testei esse do site, mas sem sucesso. Valeu mesmo assim!