Aqui está o que você precisa fazer:
- Obtenha o Apache HttpClient, isso permitirá que você faça a solicitação necessária
- Crie uma solicitação HttpPost com ela e adicione o cabeçalho "application / x-www-form-urlencoded"
- Crie um StringEntity que você passará JSON para ele
- Executar a chamada
O código parece mais ou menos (você ainda precisará depurá-lo e fazê-lo funcionar)
//Deprecated
//HttpClient httpClient = new DefaultHttpClient();
HttpClient httpClient = HttpClientBuilder.create().build(); //Use this instead
try {
HttpPost request = new HttpPost("http://yoururl");
StringEntity params =new StringEntity("details={\"name\":\"myname\",\"age\":\"20\"} ");
request.addHeader("content-type", "application/x-www-form-urlencoded");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
//handle response here...
}catch (Exception ex) {
//handle exception here
} finally {
//Deprecated
//httpClient.getConnectionManager().shutdown();
}
Você pode usar a biblioteca Gson para converter suas classes java em objetos JSON.
Crie uma classe pojo para variáveis que você deseja enviar conforme o exemplo acima
torna-se
Depois de definir as variáveis na classe pojo1, você pode enviá-lo usando o seguinte código
e estas são as importações
e para GSON
fonte
A resposta da @ momo para o Apache HttpClient, versão 4.3.1 ou posterior. Estou usando
JSON-Java
para criar meu objeto JSON:fonte
Provavelmente é mais fácil usar o HttpURLConnection .
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Você usará JSONObject ou o que quer que seja para construir seu JSON, mas não para lidar com a rede; você precisa serializá-lo e depois passá-lo para uma HttpURLConnection para POST.
fonte
j.toString()
.fonte
Tente este código:
fonte
application/json
tanto como um cabeçalho aceitar e como Content-TypeDefaultHttpClient
está obsoleto.Encontrei esta pergunta procurando uma solução sobre como enviar uma solicitação de postagem do cliente java para o Google Endpoints. Respostas acima, provavelmente corretas, mas não funcionam no caso de pontos finais do Google.
Solução para pontos finais do Google.
O cabeçalho do tipo de conteúdo deve estar definido como "application / json".
Isso também pode ser feito usando o HttpClient.
fonte
Você pode usar o seguinte código com o Apache HTTP:
Além disso, você pode criar um objeto json e inserir campos no objeto como este
fonte
Para Java 11, você pode usar o novo cliente HTTP :
Você pode usar o editor de InputStream, String, File. Convertendo JSON para a String ou IS você pode com Jackson.
fonte
Java 8 com apache httpClient 4
fonte
Eu recomendo o http-request construído no apache http api.
Se você deseja enviar
JSON
como corpo de solicitação, pode:Eu recomendo ler a documentação antes de usar.
fonte