Jak wykonać HTTP GET w Javie?Jak zrobić HTTP GET w Javie?
Odpowiedz
Technicznie można to zrobić za pomocą prostego gniazda TCP. Nie polecałbym tego jednak. Gorąco polecam zamiast tego używać Apache HttpClient. W swojej simplest form:
GetMethod get = new GetMethod("http://httpcomponents.apache.org");
// execute method and handle any error responses.
...
InputStream in = get.getResponseBodyAsStream();
// Process the data from the input stream.
get.releaseConnection();
i tutaj jest bardziej complete example.
Ten projekt jest koniec żywo. – shredding
Jeśli chcesz przesyłać strumieniowo dowolną stronę internetową, możesz skorzystać z poniższej metody.
import java.io.*;
import java.net.*;
public class c {
public static String getHTML(String urlToRead) throws Exception {
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
return result.toString();
}
public static void main(String[] args) throws Exception
{
System.out.println(getHTML(args[0]));
}
}
Jedną z zalet odpowiedzi cletusa (przy użyciu Apache HttpClient) jest to, że HttpClient może automatycznie obsługiwać przekierowania i uwierzytelnianie proxy. Standardowe klasy Java API, których używasz, nie robią tego za Ciebie. Z drugiej strony korzystanie ze standardowych klas API ma tę zaletę, że nie trzeba włączać biblioteki zewnętrznej do projektu. – Jesper
Również klasa adresu URL nie może pobrać zestawu znaków do dekodowania wyniku. –
+1 dla kompletnego kodu –
Najprostszy sposób, który nie wymaga bibliotek innych firm to stworzyć URL obiekt, a następnie zadzwonić albo openConnection lub openStream na nim. Zauważ, że jest to dość prosty interfejs API, więc nie będziesz mieć dużej kontroli nad nagłówkami.
Jeśli nie chcesz korzystać z bibliotek zewnętrznych, możesz używać klas URL i URLConnection ze standardowego interfejsu API języka Java.
Przykładem wygląda następująco:
urlString = "http://wherever.com/someAction?param1=value1¶m2=value2....";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
// Do what you want with that stream
@Hylja: biorąc pod uwagę pozorny poziom pytania OP, twój fragment kodu powinien zawierać próbkę {} finally {} do posprzątania. –
@ Stephen C: Na pewno był to tylko fragment kodu pokazujący, jakie zajęcia są w grze i jak z nich korzystać. Jeśli umieścisz to w prawdziwym programie, powinieneś zagrać w zasady wyjątku :) – HyLian
InpuTSteam = wszystko, co dostaje do nas serwer? – CodeGuru
- 1. jak uczynić żądanie HTTP GET w Androidzie
- 2. Jak korzystać z HTTP GET w PowerShell?
- 3. Jak odszyfrować dane http POST w Javie?
- 4. HTTP SOAP \ GET \ POST
- 5. Jak zrobić .net HttpClient używać http 2.0?
- 6. Jak zrobić tablicę tablic w Javie
- 7. Ograniczanie przepustowości http get
- 8. Kątowa, Http GET z parametrem?
- 9. Get wartość parametru adnotacji w Javie
- 10. Android - żądanie HTTP GET
- 11. Jak zrobić Http uzyskać i ustawić httpHeader w Swift?
- 12. Proste żądanie HTTP GET w groovy
- 13. Generowanie mieszanego/wieloczęściowego żądania HTTP w Javie
- 14. jak android downloadManager zrobić podstawowe uwierzytelnianie http
- 15. Uzyskaj rozmiar odpowiedzi HTTP w Javie
- 16. Jak utworzyć żądanie HTTP GET + POST w Kątomierzu
- 17. Node.js HTTP GET "ECONNRESET" Błąd odczytu
- 18. Jak mogę pobrać adres IP z nagłówka HTTP w Javie
- 19. Jak zrobić HTTP Purge z Java?
- 20. Jak zrobić Flask/utrzymywać połączenie HTTP Ajax?
- 21. Jak wysłać żądanie HTTP Get Web Request w języku Python?
- 22. HttpURLConnection GET request z nagłówkiem http "Accept"
- 23. Rejestrowanie HTTP JAX-WS w Javie 1.7
- 24. Sterownik Spring MVC Parametry zapytania HTTP GET
- 25. Żądanie HTTP GET i odpowiedź XML
- 26. Jak przesłonić DNS w połączeniach HTTP w Javie
- 27. Jak zmienić kodowanie zestawu znaków w odpowiedzi HTTP w Javie
- 28. Return obiekt z angularjs $ HTTP GET
- 29. Jak zrobić ułamkową moc na BigDecimal w Javie?
- 30. Jak zrobić głęboką kopię tablicy 2d w Javie?
http://stackoverflow.com/q/2793150/632951 – Pacerier