metode newBuilder(), build()

Kelas HttpRequest digunakake kanggo njlèntrèhaké http-request, kang gampang mangertos saka jenenge. Objek iki ora nindakake apa-apa, mung ngemot macem-macem informasi babagan panyuwunan http. Mulane, sing mbokmenawa wis guess, Cithakan Builder uga digunakake kanggo nggawe.

HttpRequest request = HttpRequest.newBuilder()
	.method1()
	.method2()
	.methodN()
    .build();

Ing antarane telpon menyang metode newBuilder () lan mbangun () sampeyan kudu nelpon kabeh cara kanggo mbangun obyek.HttpRequest.

Conto panjalukan prasaja katon kaya iki:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(“http://codegym.cc”))
    .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

Sampeyan bisa nemokake kabeh cara saka kelas HttpRequest ing link ing dokumentasi resmi .

Banjur kita bakal nganalisa sing paling populer.

metode uri().

Nggunakake cara uri() , sampeyan bisa nyetel URI (utawa URL) sing bakal dikirim panjalukan http. Tuladha:

HttpRequest request = HttpRequest.newBuilder()
    .uri( URI.create(“http://codegym.cc”) )
    .build();

Contone, sampeyan bisa nggawe kode iki luwih cendhek kanthi ngirim URI langsung menyang metode newBuilder() :

HttpRequest request = HttpRequest.newBuilder( URI.create(“http://codegym.cc”) ).build();

Penting! URI bisa digawe kanthi rong cara:

  • newURI(String)
  • URI.create(String)

Cara kapindho luwih disenengi. Cara pisanan, sayangé, ora apik banget, amarga konstruktor URI diumumake minangka URI publik (String str) mbuwang URISyntaxException , lan URISyntaxException minangka pangecualian sing dicenthang.

Metode GET(), POST(), PUT(), DELETE()

Sampeyan bisa nyetel cara request http nggunakake cara ing ngisor iki:

  • GET()
  • POST()
  • NDEKEK()
  • DELETE()

Mangkene panjaluk GET sing prasaja:

HttpRequest request = HttpRequest.newBuilder()
  .uri(new URI("https://codegym.cc"))
  .GET()
  .build();

metode version().

Sampeyan uga bisa nyetel versi protokol HTTP. Mung ana 2 pilihan:

  • HttpClient.Version.HTTP_1_1
  • HttpClient.Version.HTTP_2

Contone, sampeyan pengin nggawe panjalukan nggunakake protokol HTTP/2, banjur sampeyan kudu nulis:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .version( HttpClient.Version.HTTP_2 )
   .GET()
   .build();

Prasaja banget, ta? :)

metode timeout().

Sampeyan uga bisa nyetel wektu eksekusi query. Yen liwat lan panjalukan ora rampung, HttpTimeoutException bakal dibuwang .

Wektu dhewe disetel nggunakake obyek kasebutsuwenesaka Java DateTime API. Tuladha:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .timeout( Duration.of(5, SECONDS) )
   .GET()
   .build();

Anane metode iki nuduhake yen kelas HttpClient lan HttpRequest bisa nindakake macem-macem tugas. Mbayangno yen sampeyan nglakokake panjalukan, lan ana kedadeyan ing jaringan kasebut lan tahan 30 detik. Luwih migunani kanggo langsung nampa pangecualian lan nanggepi kanthi bener.

metode header().

Sampeyan uga bisa nambah nomer header menyang panyuwunan apa wae. Lan iku gampang kanggo nindakake kaya liyane. Ana cara khusus kanggo iki - header() . Tuladha:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .header("name1", "value1")
   .header("name2", "value2")
   .GET()
   .build();

Ana cara alternatif liyane kanggo nyetel akeh header bebarengan. Bisa uga migunani yen, contone, sampeyan ngowahi dhaptar header dadi array:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("name1", "value1", "name2", "value2")
   .GET()
   .build();

Kabeh dhasar prasaja.