HttpGet request body-android
Ich versuche eine Anfrage auf den server von HttpGet. Aber im Körper der Nachricht sollte ein json-Objekt. Der Code unten funktioniert nicht, weil unit_id und sercret_key nicht gesendet werden auf server in den Körper der Nachricht. Wie kann ich es tun?
JSONObject:
{
"unit_id": 12345,
"secret_key": "sdfadfsa6as987654754"
}
Mein code:
private HttpResponse makeRequest(int id, String secretKey) throws Exception {
BasicHttpParams params = new BasicHttpParams();
params.setParameter("id", id);
params.setParameter("secret_key", secretKey);
httpget.setHeader("Accept", "application/json");
httpget.setParams(params);
httpget.setHeader("Content-type", "application/json");
//Handles what is returned from the page
return httpclient.execute(httpget);
}
Edit: in php diese Anforderung ist wie folgt
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://0101.apiary.io/api/reservations/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n \"unit_id\": 12345,\n \"secret_key\": \"sdfadfsa6as987654754\"\n}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
Es scheint, dass Sie nicht legen Sie die url für Ihre Anfrage.
Ich versuche diesen code gegen server und die Antwort ist 400, die habe ich nicht gesetzt Nachrichtentext.
per definition BEKOMMEN => Keine Request-body
Es muss getan werden, irgendwie. Obigen Code von php arbeitet gut, so dass es shloud erfolgt in java für android zu, das hoffe ich.
Ich versuche diesen code gegen server und die Antwort ist 400, die habe ich nicht gesetzt Nachrichtentext.
per definition BEKOMMEN => Keine Request-body
Es muss getan werden, irgendwie. Obigen Code von php arbeitet gut, so dass es shloud erfolgt in java für android zu, das hoffe ich.
InformationsquelleAutor Amsik | 2013-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Grunde, Sie können nicht senden, Zeile Daten in den Körper (JSON oder etwas) mit einem HTTP/GET Anfrage. Das Protokoll einfach nicht erlauben, Sie zu schließen. Offensichtlich, müssen Sie POST zu tun, dass in Android auch. 🙂
UPDATE
War ich falsch. Infact das Protokoll erlaubt Ihnen, setzen Sie ein Element in das request-Objekt. Diese Klasse kann verwendet werden, anstelle von Apache
HttpGet
.Und verwenden Sie es wie Sie wie folgt vor,
Quelle für
HttpGetWithEntity
gefunden hierIch habe deutlich erwähnt, es ist nicht möglich, mit BEKOMMEN. Ich kann mich nicht erinnern, ich sagte nichts über das, SETZEN auf alle. 🙂
ja meine Schuld. aber für GET-Anfragen ist es möglich, auch.
InformationsquelleAutor Subin Sebastian
Wenn Sie wnat hinzufügen JSON-Objekt auf Ihre Anforderung es muss ein Post-request, und dies ist, wie Sie es ausführen:
InformationsquelleAutor Emil Adz
Hier ist ein schönes Beispiel, wie es zu tun und es funktioniert.
Apache-HttpClient mit Körper
Aber dieser Ansatz ist gegen RESTFUL api, denke ich.
InformationsquelleAutor Amsik