Folgendes müssen Sie tun:
- Holen Sie sich den Apache HttpClient, damit Sie die erforderliche Anfrage stellen können
- Erstellen Sie damit eine HttpPost-Anfrage und fügen Sie den Header "application / x-www-form-urlencoded" hinzu.
- Erstellen Sie eine StringEntity, an die Sie JSON übergeben
- Führen Sie den Anruf aus
Der Code sieht ungefähr so aus (Sie müssen ihn noch debuggen und zum Laufen bringen).
//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();
}
Sie können die Gson-Bibliothek verwenden, um Ihre Java-Klassen in JSON-Objekte zu konvertieren.
Erstellen Sie eine Pojo-Klasse für Variablen, die Sie wie im obigen Beispiel senden möchten
wird
Sobald Sie die Variablen in der Klasse pojo1 festgelegt haben, können Sie diese mit dem folgenden Code senden
und das sind die Importe
und für GSON
quelle
@ momos Antwort für Apache HttpClient, Version 4.3.1 oder höher. Ich verwende
JSON-Java
zum Erstellen meines JSON-Objekts:quelle
Es ist wahrscheinlich am einfachsten, HttpURLConnection zu verwenden .
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Sie verwenden JSONObject oder was auch immer, um Ihren JSON zu erstellen, aber nicht, um das Netzwerk zu verwalten. Sie müssen es serialisieren und dann an eine HttpURLConnection an POST übergeben.
quelle
j.toString()
.quelle
Versuchen Sie diesen Code:
quelle
application/json
sowohl als Akzeptanz-Header als auch als Inhaltstyp sendenDefaultHttpClient
veraltet ist.Ich fand diese Frage auf der Suche nach einer Lösung zum Senden einer Post-Anfrage vom Java-Client an Google Endpoints. Die obigen Antworten sind sehr wahrscheinlich korrekt, funktionieren jedoch bei Google Endpoints nicht.
Lösung für Google Endpoints.
Der Inhaltstyp-Header muss auf "application / json" gesetzt sein.
Dies kann sicher auch mit HttpClient erfolgen.
quelle
Sie können den folgenden Code mit Apache HTTP verwenden:
Außerdem können Sie ein JSON-Objekt erstellen und Felder wie folgt in das Objekt einfügen
quelle
Für Java 11 können Sie einen neuen HTTP-Client verwenden :
Sie können Publisher aus InputStream, String, File verwenden. Konvertieren Sie JSON in den String oder IS, den Sie mit Jackson können.
quelle
Java 8 mit Apache httpClient 4
quelle
Ich empfehle http-Anfrage auf Apache http API gebaut.
Wenn Sie als Anfragetext senden möchten,
JSON
können Sie:Ich empfehle dringend, die Dokumentation vor dem Gebrauch zu lesen.
quelle