Ich habe eine HTTP-GET-Anfrage, die ich senden möchte. Ich habe versucht, die Parameter zu dieser Anforderung hinzuzufügen, indem ich zuerst ein BasicHttpParams
Objekt erstellt und die Parameter zu diesem Objekt hinzugefügt und dann setParams( basicHttpParms )
mein HttpGet
Objekt aufgerufen habe . Diese Methode schlägt fehl. Wenn ich meine Parameter jedoch manuell zu meiner URL hinzufüge (dh anhänge ?param1=value1¶m2=value2
), ist dies erfolgreich.
Ich weiß, dass mir hier etwas fehlt und jede Hilfe wäre sehr dankbar.
Antworten:
Ich verwende eine Liste von NameValuePair und URLEncodedUtils, um die gewünschte URL-Zeichenfolge zu erstellen.
quelle
Um uri mit get-Parametern zu erstellen, bietet Uri.Builder eine effektivere Möglichkeit.
quelle
Ab HttpComponents
4.2+
gibt es einen neuen Klassen- URIBuilder , der eine bequeme Möglichkeit zum Generieren von URIs bietet.Sie können entweder URI direkt über die String-URL erstellen:
Andernfalls können Sie alle Parameter explizit angeben:
Sobald Sie ein
URI
Objekt erstellt haben , müssen Sie nur noch einHttpGet
Objekt erstellen und es ausführen:quelle
Die Methode
mögen
fügt nur HttpProtocol-Parameter hinzu.
Um das httpGet auszuführen, sollten Sie Ihre Parameter manuell an die URL anhängen
Oder verwenden Sie die Post-Anfrage. Der Unterschied zwischen Get- und Post-Anfragen wird hier erklärt , wenn Sie interessiert sind
quelle
URI javadoc
Hinweis:
url = new URI(...)
ist fehlerhaftquelle
quelle
Wenn Sie eine Konstante haben,
URL
empfehle ich die Verwendung einer vereinfachten http-Anfrage, die auf Apache http basiert.Sie können Ihren Client wie folgt erstellen:
Hinweis: Es gibt viele nützliche Methoden, um Ihre Antwort zu bearbeiten.
quelle