"์•ˆ๋…•, ์•„๋ฏธ๊ณ !"

"์•ˆ๋…•, ์—˜๋ฆฌ!"

"๋‹น์‹ ์€ ์˜ค๋Š˜ ์ž์‹ ์— ๋Œ€ํ•ด ๋งค์šฐ ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค."

"ํ—ˆ, ๋นŒ๋ผ์•„๋ณด๊ฐ€ ์•„ํŒ ์–ด."

"๊ทธ๋ž˜์„œ ๊ทธ๋Š” ๋‹น์‹ ์—๊ฒŒ ํฅ๋ฏธ๋กญ๊ณ  ์œ ์šฉํ•˜๊ณ  ํ•„์š”ํ•œ ๋งŽ์€ ๊ฒƒ๋“ค์„ ์„ค๋ช…ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹น์‹ ์˜ ํฐ ๋กœ๋ด‡ ๋ฐ”์ง€๋ฅผ ์ž…์„ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค."

"์–ดํ—ˆ. ๋‚ด๊ฐ€ ์•Œ์•„์„œ ํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ• ๊ฒŒ. Bilaabo๊ฐ€ ๋‚˜์—๊ฒŒ ๋งํฌ๋ฅผ ์คฌ์–ด."

"์•Œ์•˜์–ด, ์•Œ์•˜์–ด. ๊ทธ๋Ÿผ ์žฌ๋ฏธ์žˆ๋Š” ์–˜๊ธฐ๋ฅผ ํ•ด์ค„๊ฒŒ."

"์ฆ‰, ์ธํ„ฐ๋„ท์—์„œ ๋น„๋””์˜ค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค."

"์ธํ„ฐ๋„ท ์ž‘์—…์„ ์œ„ํ•ด Java์—๋Š” URL์ด๋ผ๋Š” ํŠน์ˆ˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

1) ๋จผ์ € ํ•„์š”ํ•œ ์„œ๋ฒ„์˜ ์˜ฌ๋ฐ”๋ฅธ URL์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2) ๊ทธ๋Ÿฐ ๋‹ค์Œ URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3) ๊ทธ๋Ÿฐ ๋‹ค์Œ POST ์š”์ฒญ์ธ ๊ฒฝ์šฐ ์š”์ฒญ ๋ณธ๋ฌธ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋˜๋Š” GET ์š”์ฒญ์ธ ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4) ๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋ฒ„ ์‘๋‹ต์„ ์ฝ์Šต๋‹ˆ๋‹ค.

"๊ฐ„๋‹จํ•œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

์˜ˆ
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
URLConnection connection = url.openConnection(); // Establish a connection

// Get an OutputStream in order to write the request to it
OutputStream outputStream = connection.getOutputStream();
outputStream.write(1);
outputStream.flush();

// Get an InputStream in order to read the response from it
InputStream inputStream = connection.getInputStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

"๋จผ์ € URLConnection ๊ฐœ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค ."

"๊ทธ๋Ÿฐ ๋‹ค์Œ ์š”์ฒญ์„ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” OutputStream์„ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค."

"๊ทธ๋Ÿฐ ๋‹ค์Œ ์‘๋‹ต์„ ๋‚˜ํƒ€๋‚ด๋Š” InputStream ๊ฐœ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์—ฌ๊ธฐ์—์„œ ์‘๋‹ต ์ž์ฒด๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. Files.copy ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ฅผ ยซc:/google.pngยป ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค."

"์˜ˆ, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ยซwrite(1)ยป๊ฐ€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"

"๊ธ€์Ž„์š”, ๊ฑฐ๊ธฐ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํฌํ•จ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์š”์ฒญ์— ์•„๋ฌด ๊ฒƒ๋„ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰์‹œ InputStream์„ ๊ฐ€์ ธ์˜ค๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์‘๋‹ต์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. URL ๊ฐœ์ฒด์—๋Š” InputStream ๊ฐœ์ฒด๋ฅผ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•˜๋Š” openStream() ๋ฉ”์„œ๋“œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ GET ์š”์ฒญ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

์˜ˆ
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
InputStream inputStream = url.openStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

"์žฌ๋ฏธ์žˆ๋‹ค! ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ด๋ ‡๊ฒŒ ์‰ฌ์šธ ์ค„์€ ๋ชฐ๋ž์–ด."

"์Œ, ํŒŒ์ผ์ด ํด ์ˆ˜ ์žˆ๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋ฌด๋„ ์ด๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."

"ํŒŒ์ผ ์ž‘์—…์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์—."