Inilah yang perlu Anda lakukan:
- Dapatkan Apache HttpClient, ini akan memungkinkan Anda untuk membuat permintaan yang diperlukan
- Buat permintaan HttpPost dengannya dan tambahkan tajuk "application / x-www-form-urlencoded"
- Buat StringEntity yang akan Anda berikan JSON untuk itu
- Jalankan panggilan
Sepertinya kode itu kira-kira (Anda masih perlu melakukan debug dan membuatnya berfungsi)
//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();
}
Anda dapat menggunakan pustaka Gson untuk mengonversi kelas java Anda menjadi objek JSON.
Buat kelas pojo untuk variabel yang ingin Anda kirim sesuai Contoh di atas
menjadi
setelah Anda mengatur variabel di kelas pojo1 Anda dapat mengirimnya menggunakan kode berikut
dan ini adalah impor
dan untuk GSON
sumber
@ momo menjawab untuk Apache HttpClient, versi 4.3.1 atau yang lebih baru. Saya menggunakan
JSON-Java
untuk membangun objek JSON saya:sumber
Mungkin paling mudah menggunakan HttpURLConnection .
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Anda akan menggunakan JSONObject atau apa pun untuk membangun JSON Anda, tetapi tidak untuk menangani jaringan; Anda perlu membuat cerita bersambung dan kemudian meneruskannya ke HttpURLConnection ke POST.
sumber
j.toString()
.sumber
Coba kode ini:
sumber
application/json
keduanya sebagai tajuk terima dan sebagai tipe kontenDefaultHttpClient
sudah usang.Saya menemukan pertanyaan ini mencari solusi tentang cara mengirim permintaan pos dari klien java ke Google Endpoints. Jawaban di atas, sangat mungkin benar, tetapi tidak berfungsi jika ada Google Endpoints.
Solusi untuk Google Endpoints.
Header tipe konten harus diatur ke "application / json".
Itu pasti bisa dilakukan dengan menggunakan HttpClient juga.
sumber
Anda dapat menggunakan kode berikut dengan Apache HTTP:
Selain itu Anda dapat membuat objek json dan memasukkan bidang ke objek seperti ini
sumber
Untuk Java 11 Anda dapat menggunakan klien HTTP baru :
Anda dapat menggunakan penerbit dari InputStream, String, File. Konversi JSON ke String atau IS Anda bisa dengan Jackson.
sumber
Java 8 dengan apache httpClient 4
sumber
Saya merekomendasikan http-request yang dibangun di atas apache http api.
Jika Anda ingin mengirim
JSON
sebagai badan permintaan, Anda dapat:Saya sangat merekomendasikan membaca dokumentasi sebelum digunakan.
sumber