CodeGym/Java Course/рдореЙрдбреНрдпреВрд▓ 3/HttpRequest рдордзреНрдпреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдЬреЛрдбрдд рдЖрд╣реЗ

HttpRequest рдордзреНрдпреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдЬреЛрдбрдд рдЖрд╣реЗ

рдЙрдкрд▓рдмреНрдз

3.1 рд╢рд░реАрд░ рдкреНрд░рдХрд╛рд╢рдХ

рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рд╡рд┐рд╕рд░рд▓рд╛ рдирд╕реЗрд▓ рдХреА GET рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд , PUT рдЖрдгрд┐ POST рд╡рд┐рдирдВрддреНрдпрд╛ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд , рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреАрдордзреНрдпреЗ request body, рдореНрд╣рдгрдЬреЗ рд╡рд┐рдирдВрддреА рдореБрдЦреНрдп рднрд╛рдЧ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ.

рдпрд╛рд╕рд╛рдареА рд╡рд░реНрдЧрд╛рдд HttpRequestрдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрддреАрд▓ рд╡рд░реНрдЧ рдЖрд╣реЗ BodyPublisher. рдЬрд░реА рд╣рд╛ рддрд╛рдВрддреНрд░рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдиреЗрдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдЪреА рдЖрдкрдг рдЦрд╛рд▓реА рдЪрд░реНрдЪрд╛ рдХрд░реВ

рдЖрдгрд┐ рдЖрдореНрд╣реА рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреНрдпрд╛рд╕рд╣ рдкреНрд░рд╛рд░рдВрдн рдХрд░реВ - рд╡рд┐рдирдВрддреА рд╢рд░реАрд░рд╛рдЪреА рдЕрдиреБрдкрд╕реНрдерд┐рддреА. рд╣реЛрдп, рддреЗ рдШрдбрддреЗ.

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

рд╕рд╛рдзреЗ рдЖрдгрд┐ рд╕реБрдВрджрд░.

рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреЗ 3.2()

рджреБрд╕рд░рд╛ рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ рд╡рд┐рдирдВрддреА рдореБрдЦреНрдп рднрд╛рдЧ рдореНрд╣рдгреВрди рдХрд╛рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рдгреЗ. рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("Content-Type", "text/plain;charset=UTF-8")
   .POST(HttpRequest.BodyPublishers.ofString("Hello"))
   .build();

рддрд╕реЗ, рдЖрдкрдг рдкреНрд░рд╕рд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛. HTTP рд╕рд░реНрд╡реНрд╣рд░ рдЬреНрдпрд╛рд╡рд░ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд▓реА рдЖрд╣реЗ рддреЗ UTF8 рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╕рд▓реНрдпрд╛рд╕ рддреЗ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЗ.

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .POST(HttpRequest.BodyPublishers.ofString("Hello", Charset. US-ASCII)))
   .build();

3.3 рдСрдл рдлрд╛рдЗрд▓()

рд╢реЗрд╡рдЯреА, рддреБрдореНрд╣рд╛рд▓рд╛ POST рд╡рд┐рдирдВрддреАрд▓рд╛ рдлрд╛рдЗрд▓ рд╕рдВрд▓рдЧреНрди рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ . рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рддреБрдордЪреЗ рдЕрд╡рддрд╛рд░ рд╕рд╣рд╕рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрдкрд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕реНрдерд╛рдирд┐рдХ рдлрд╛рдЗрд▓ ofFile()рдХреЛрдареЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рдпрдЪреА рдпрд╛ рдкрджреНрдзрддреАрд╡рд░ рдХреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:Path

Path avatar = Path.of("c://avatar.jpeg");

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("Content-Type", "image/jpeg")
   .POST(HttpRequest.BodyPublishers.ofFile(avatar))
   .build();

3.4 ofByteArray()

рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рд╕рдВрдЪ рдкрд╛рдард╡рдгреЗ рд╣реА рджреБрд╕рд░реА рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рд╕рдВрдЪ рдореНрд╣рдгреВрди рдХрд╛рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдХрд╛рд╣реАрддрд░реА рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдмрдлрд░ рдкрд╛рдард╡рд╛рдпрдЪрд╛ рдЖрд╣реЗ. рдпрд╛рд╕рд╛рдареА рдПрдХ рдкрджреНрдзрдд рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ .ofByteArray().

рд╣реА рдкрджреНрдзрдд рдкреЕрд░рд╛рдореАрдЯрд░ рдореНрд╣рдгреВрди рдмрд╛рдЗрдЯреНрд╕рдЪреА рдЕреЕрд░реЗ рдШреЗрддреЗ. рдЙрджрд╛рд╣рд░рдг:

byte[] data = "My Secret Message".getBytes();
byte[] dataEncripted = SuperEncriptor.encript(data);

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("Content-Type", "application/octet-stream")
   .POST(HttpRequest.BodyPublishers.ofByteArray(dataEncripted))
   .build();

Inputstream() рдЪреЗ 3.5

рд╢реЗрд╡рдЯреА, рд╢реЗрд╡рдЯрдЪреА рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╛рдд рдордиреЛрд░рдВрдЬрдХ рдкрд░рд┐рд╕реНрдерд┐рддреА рдкреЛрд╕реНрдЯ рд╡рд┐рдирдВрддреАрд╢реАInputStream рд╕рдВрд▓рдЧреНрди рдХрд░рдгреЗ рдЖрд╣реЗ .

рдпрд╛рд╕рд╛рдареА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдЖрд╣реЗ ofInputStream(). рдЖрдгрд┐ рддреА рдЦреВрдк рд╣реБрд╢рд╛рд░ рдЖрд╣реЗ. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдордзреВрди рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА, POS рд╡рд┐рдирдВрддреАрд▓рд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рд╕рдВрд▓рдЧреНрди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЬреА рдЕрджреНрдпрд╛рдк рдЙрдШрдбрд▓реЗрд▓реА рдирд╛рд╣реА.

рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ ofInputStream(), рдЬреЗ рдкрд░рд┐рдгрд╛рдореА рдПрдХ рдкреНрд░рд╡рд╛рд╣ рдкрд░рдд рдХрд░реЗрд▓ InputStream.

рдЙрджрд╛рд╣рд░рдг:

byte[] data = "My Secret Message".getBytes();
//wrapping an array of bytes into a stream.
InputStream is = new ByteArrayInputStream(data);

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("Content-Type", "application/octet-stream")
   .POST(HttpRequest.BodyPublishers.ofInputStream (() -> is;))
   .build();

рдореА рдпреЗрдереЗ рдмрд╛рдЧреЗрд▓рд╛ рдХреБрдВрдкрдг рдШрд╛рд▓рдгреНрдпрд╛рдЪрд╛ рддреНрд░рд╛рд╕ рдШреЗрддрд▓рд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рддрддреНрддреНрд╡ рд╕рдордЬрд▓реЗ рдЖрд╣реЗ. рддреНрдпрд╛рдВрдиреА рдЕрд╕реЗ рдХрд╛ рдХреЗрд▓реЗ? рдЖрдкрдг рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ ofByteArray(). рдкрд░рдВрддреБ рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд╛рдард╡рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢реЗрд╖рддрдГ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддреА рд▓рд╛рдЧреВ рдХрд░рд╛рдпрдЪреА рдЕрд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рд╣реА рдкрджреНрдзрдд рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд