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()
. рдкрд░рдВрддреБ рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд╛рдард╡рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢реЗрд╖рддрдГ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддреА рд▓рд╛рдЧреВ рдХрд░рд╛рдпрдЪреА рдЕрд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рд╣реА рдкрджреНрдзрдд рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.