Mam żądanie HTTP GET, które próbuję wysłać. Próbowałem dodać parametry do tego żądania, najpierw tworząc BasicHttpParams
obiekt i dodając parametry do tego obiektu, a następnie wywołując setParams( basicHttpParms )
mój HttpGet
obiekt. Ta metoda zawodzi. Ale jeśli ręcznie dodam parametry do mojego adresu URL (tj. Dołączę ?param1=value1¶m2=value2
), to się powiedzie.
Wiem, że czegoś mi tu brakuje i każda pomoc byłaby bardzo mile widziana.
Odpowiedzi:
Używam listy NameValuePair i URLEncodedUtils, aby utworzyć ciąg adresu URL, który chcę.
źródło
Aby zbudować uri z parametrami get, Uri.Builder zapewnia bardziej efektywny sposób.
źródło
Od HttpComponents
4.2+
istnieje nowa klasa URIBuilder , która zapewnia wygodny sposób generowania identyfikatorów URI.Możesz użyć albo utwórz URI bezpośrednio z adresu URL ciągu:
W przeciwnym razie możesz jawnie określić wszystkie parametry:
Po utworzeniu
URI
obiektu wystarczy po prostu utworzyćHttpGet
obiekt i wykonać go:źródło
Metoda
lubić
dodaje tylko parametry HttpProtocol.
Aby wykonać httpGet, należy ręcznie dołączyć parametry do adresu URL
lub skorzystaj z prośby o pocztę. Jeśli jesteś zainteresowany, wyjaśniono tutaj różnicę między żądaniami get i post
źródło
URI javadoc
Uwaga:
url = new URI(...)
jest wadliwyźródło
źródło
Jeśli masz stałą
URL
, polecam użycie uproszczonego żądania http opartego na apache http.Możesz zbudować swojego klienta w następujący sposób:
Uwaga: istnieje wiele przydatnych metod manipulowania odpowiedzią.
źródło