|
ÆÞ ÀÀ¿ë - Á¦ 6° Win32::Internet »ç¿ëÀÚ ±æÀâÀÌ - °è¼Ó
HTTP ÇÔ¼ö
ÀϹÝÀû ¼³¸í
¸ðµç ¸Þ¼Òµå´Â ¸Þ¼Òµå¸¦ È£ÃâÇϱâ Àü¿¡ ´ÙÀ½°ú °°Àº ÇàÀ» °¡Áö°í ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù:
use Win32::Internet;
$INET = new Win32::Internet();
$INET->HTTP($HTTP, "hostname", "username", "password");
´Ù¸¥ ¸»·ÎÇϸé $INET¶ó´Â ÀÎÅÍ³Ý °³Ã¼¿Í $HTTP¶ó´Â ¿·ÁÁø HTTP ¼¼¼ÇÀ» °¡Áö°í ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù.
º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â new¿Í HTTP¸¦ º»´Ù.
¸Þ¼Òµå
- AddHeader header, [flags]
- OpenRequest·Î »ý¼ºµÈ HTTP ¿äû °³Ã¼¿¡ HTTP ¿äû Çì´õ¸¦ Ãß°¡ÇÑ´Ù. flags¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù.
¿¹:
$HTTP->OpenRequest($REQUEST,"/index.htm");
$REQUEST->AddHeader("If-Modified-Since: Sunday, 17-Nov-96 11:40:03 GMT");
$REQUEST->AddHeader("Accept: text/html", HTTP_ADDREQ_FLAG_REPLACE);
- OpenRequest requestobject, [path, method, version, referer, accept, flags, context]
- OpenRequest requestobject, hashref
- HTTP ¿äûÀ» ¿¬´Ù. ¿À·ù°¡ ¹ß»ýÇϸé undef°¡ ¸®ÅϵǸç Á¢¼ÓÀÌ ¼º°øÀûÀÎ °æ¿ì¿¡´Â ÀÓÀÇÀÇ ¼ö°¡ ¸®ÅϵȴÙ. »õ·Î »ý¼ºµÈ requestobject °³Ã¼¿¡´ëÇØ AddHeader, SendRequest, QueryInfo, QueryDataAvailable, ReadFile ¸Þ¼ÒµåÁß Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸Å°³º¯¼ö¿Í °ªÀº ´ÙÀ½°ú °°´Ù:
¸Å°³º¯¼ö |
ÀÇ¹Ì |
±âº»°ª |
path |
¿äûÇÒ °³Ã¼. ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î ÆÄÀϸíÀ̳ª ½ÇÇà¸ðµâµîÀÌ´Ù. |
/ |
method |
»ç¿ëÇÒ ¸Þ¼Òµå; »ç½Ç GET, POST, HEAD³ª PUTÁß ÇϳªÀÏ °ÍÀÌ´Ù. |
GET |
version |
HTTP ¹öÀü. |
HTTP/1.0 |
referer |
ÇöÀçÀÇ URLÀÇ ¸µÅ©¸¦ Á¦°øÇÑ URL. |
¾øÀ½ |
accept |
¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â MIME Çü½Ä. À̵éÀº ""(ASCII "¿µ")¿¡ÀÇÇØ ºÐ¸®µÇ¾î¾ß ÇÑ´Ù. |
text/* image/gif image/jpeg |
flags |
ÇÔ¼öÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÖ´Â Ãß°¡ÀûÀÎ Ç÷¢. |
¾øÀ½ |
context |
ºñµ¿±â µ¿À۽à µ¿ÀÛÀ» È®ÀÎÇϱâÀ§ÇÑ ¹øÈ£. ºñµ¿±â µ¿ÀÛ¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â SetStatusCallback°ú GetStatusCallbackÀ» º»´Ù. |
¾øÀ½ |
ÀÌµé ¸Å°³º¯¼ö¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ »çÇ×Àº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¸¸¾à hashref(¿¬°ü¹è¿ ÂüÁ¶)À» Àü´ÞÇÑ´Ù¸é ´ÙÀ½°ú °°Àº °ªµéÀÌ ¹è¿·ÎºÎÅÍ ÃëÇØÁø´Ù:
%hash=(
"path" => "path",
"method" => "method",
"version" => "version",
"referer" => "referer",
"accept" => "accept",
"flags" => flags,
"context" => context
);
¶ÇÇÑ RequestÀ» º»´Ù.
¿¹:
$HTTP->OpenRequest($REQUEST, "/index.htm");
$HTTP->OpenRequest($REQUEST, "/index.htm", "GET", "HTTP/0.9");
$params{"path"} = "/index.htm";
$params{"flags"} = "
$HTTP->OpenRequest($REQUEST, \%params);
- QueryInfo header, [flags]
- OpenRequest·Î »ý¼ºµÈ HTTP ¿äû °³Ã¼¿¡´ëÇÑ Á¤º¸¸¦ ÁúÀÇÇÑ´Ù. header(¿¹: "Content-type")¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç Çϳª ÀÌ»óÀÇ flagsÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à flagsÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é HTTP_QUERY_CUSTOM°¡ ±âº»ÀûÀ¸·Î »ç¿ëµÈ´Ù. ÀÌ°ÍÀº header´Â Ÿ´çÇÑ HTTP Çì´õ À̸§À» Æ÷ÇÔÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. flags¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù.
¿¹:
$HTTP->OpenRequest($REQUEST,"/index.htm");
$statuscode = $REQUEST->QueryInfo("", HTTP_QUERY_STATUS_CODE);
# will get all the headers
$headers = $REQUEST->QueryInfo("", HTTP_QUERY_RAW_HEADERS_CRLF);
$length = $REQUEST->QueryInfo("Content-length");
- Request [path, method, version, referer, accept, flags]
- Request hashref
- HTTP ¿äûÀ» ¼öÇàÇÏ°í »óÅÂÄÚµå, Çì´õ, ÆÄÀÏÀÇ ³»¿ëÀ» Æ÷ÇÔÇÏ´Â ¹è¿À» ¸®ÅÏÇÑ´Ù. ÀÌ °ÍÀº OpenRequest, SendRequest¸¦ ¼öÇàÇÏ°í, QueryInfo, ReadFile¸¦ ¼öÇàÇÑ ÈÄ, ¸¶Áö¸·À¸·Î Close·Î ÁøÇàµÇ´Â ´Ü°è¸¦ °£·«ÈÇÑ ÀýÂ÷ÀÌ´Ù. ¸Å°³º¯¼ö¿¡´ëÇÑ ¼³¸íÀº OpenRequestÀ» º»´Ù.
¿¹:
($statuscode, $headers, $file) = $HTTP->Request("/index.htm");
($s, $h, $f) = $HTTP->Request("/index.htm", "GET", "HTTP/1.0");
- SendRequest [postdata]
- HTTP ¿äûÀ» ¿ø°Ý¼¹ö·Î Àü¼ÛÇÑ´Ù. postdata´Â ¿äû Çì´õ¸¦ Àü¼ÛÇÑ Á÷ÈÄ Àü¼ÛµÉ Ãß°¡ÀûÀÎ µ¥ÀÌŸÀÌ´Ù; ÀÌ °ÍÀº ÀϹÝÀûÀ¸·Î POST³ª PUT ¿äû¿¡´ëÇØ »ç¿ëµÈ´Ù.
¿¹:
$HTTP->OpenRequest($REQUEST, "/index.htm");
$REQUEST->SendRequest();
# A POST request...
$HTTP->OpenRequest($REQUEST, "/cgi-bin/somescript.pl", "POST");
#This line is a must -> (thanks Philip :)
$REQUEST->AddHeader("Content-Type: application/x-www-form-urlencoded");
$REQUEST->SendRequest("key1=value1&key2=value2&key3=value3");
| | |
|