|
ÆÞ ÀÀ¿ë - Á¦ 6° Win32::Internet »ç¿ëÀÚ ±æÀâÀÌ - °è¼Ó
ÀÏ¹Ý ÀÎÅÍ³Ý ÇÔ¼ö
ÀϹÝÀû ¼³¸í
¸ðµç ¸Þ¼Òµå´Â ¸Þ¼Òµå¸¦ È£ÃâÇϱâ Àü¿¡ ´ÙÀ½°ú °°Àº ÇàÀ» °¡Áö°í ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù:
use Win32::Internet;
¶ÇÇÑ ÀÌ È£ÃâÀ» »ç¿ëÇؼ »ý¼ºµÈ $INET¶ó´Â ÀÎÅÍ³Ý °³Ã¼¸¦ °¡Áö°í ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù.
$INET = new Win32::Internet();
º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â newÀ» º»´Ù.
¸Þ¼Òµå
- CanonicalizeURL URL, [flags]
- URLÀ» ±ÔÄ¢¿¡ ¸Â´Â Çü½ÄÀ¸·Î º¯È¯ÇÑ´Ù. À̶§ ¹Þ¾Æµé¿©ÁöÁö ¾Ê´Â ¹®ÀÚ´Â EscapeµÈ´Ù. ±ÔÄ¢¿¡ ¸Â´Â URLÀÌ ¸®Åϵǰųª undef(¿À·ù ¹ß»ý½Ã)°¡ ¸®ÅϵȴÙ. flags¿¡ °¡´ÉÇÑ °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ Âü°íÇÑ´Ù. ¶ÇÇÑ CombineURL°ú OpenURL¸¦ º»´Ù.
¿¹:
$cURL = $INET->CanonicalizeURL($URL);
$URL = $INET->CanonicalizeURL($cURL, ICU_DECODE);
- Close
- Close object
- ÀÎÅÍ³Ý Á¢¼ÓÀ» ´Ý´Â´Ù. ÀÌ °ÍÀº ÀÓÀÇÀÇ Win32::Internet °³Ã¼(ÀÎÅÍ³Ý Á¢¼Ó, URL, FTP ¼¼¼Çµî)¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù. Win32::Internet °³Ã¼´Â ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ ¶§ ÀÚµ¿ÀûÀ¸·Î ´ÝÈ÷±â¶§¹®¿¡ ¹Ýµå½Ã »ý¼ºÇÒ °³Ã¼¸¦ ´ÝÀ» ÇÊ¿ä´Â ¾ø´Ù.
¿¹:
$INET->Close();
$FTP->Close();
$INET->Close($FTP); # same as above...
- CombineURL baseURL, relativeURL, [flags]
- ±âº» URL°ú »ó´ë URLÀ» ÇϳªÀÇ URL·Î °áÇÕÇÑ´Ù. °áÇÕµÈ URLÀ̳ª undef(¿À·ù ¹ß»ý½Ã)°¡ ¸®ÅϵȴÙ. flags¿¡ °¡´ÉÇÑ °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ Âü°íÇÑ´Ù. ¶ÇÇÑ CombineURL°ú OpenURL¸¦ º»´Ù.
¿¹:
$URL = $INET->CombineURL("http://www.divinf.it/dada/perl/internet", "..");
- ConnectBackoff [value]
- Á¢¼Ó Àç ½Ãµµ½Ã ´ë±â ½Ã°£(1000ºÐÀÇ 1ÃÊ)À» Àаųª ¼³Á¤ÇÑ´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é Àç½Ãµµ »çÀÌÀÇ Áö¿¬½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ConnectTimeout, ConnectRetries, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->ConnectBackoff(2000);
$backoff = $HTTP->ConnectBackoff();
- ConnectRetries [value]
- Á¢¼ÓÀ» ½ÇÆÐÇÑ °ÍÀ¸·Î °£ÁÖÇϱâÀü¿¡ ´Ù½Ã Á¢¼ÓÇÒ ½Ãµµ Ƚ¼ö¸¦ Àаųª ¼³Á¤ÇÑ´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é Àç½Ãµµ Ƚ¼ö°¡ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº 5ÀÌ´Ù. ConnectBackoff, ConnectTimeout, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->ConnectRetries(20);
$retries = $HTTP->ConnectRetries();
- ConnectTimeout [value]
- Á¢¼ÓÀ» ½ÇÆÐÇÑ °ÍÀ¸·Î °£ÁÖÇϱâÀü¿¡ ´ë±âÇÒ ½Ã°£(1000ºÐÀÇ 1ÃÊ)À» Àаųª ¼³Á¤ÇÑ´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ´ë±â½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ConnectBackoff, ConnectRetries, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->ConnectTimeout(10000);
$timeout = $HTTP->ConnectTimeout();
- ControlReceiveTimeout [value]
- Á¦¾îÄÚµå(ºñ-µ¥ÀÌŸ)¸¦ Ãë¼ÒÇϱâÀü¿¡ Á¦¾îÄÚµå ¼ö½Å ¿äû¿¡ »ç¿ëµÉ ´ë±â½Ã°£(1000ºÐÀÇ 1ÃÊ)¸¦ Àаųª ¼³Á¤ÇÑ´Ù. ÇöÀç ÀÌ °ªÀº FTP ¼¼¼Ç¿¡´ëÇؼ¸¸ Àǹ̸¦ °®´Â´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ´ë±â½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ControlSendTimeout, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->ControlReceiveTimeout(10000);
$timeout = $HTTP->ControlReceiveTimeout();
- ControlSendTimeout [value]
- Á¦¾îÄÚµå(ºñ-µ¥ÀÌŸ)¸¦ Ãë¼ÒÇϱâÀü¿¡ Á¦¾îÄÚµå ¼Û½Å ¿äû¿¡ »ç¿ëµÉ ´ë±â½Ã°£(1000ºÐÀÇ 1ÃÊ)¸¦ Àаųª ¼³Á¤ÇÑ´Ù. ÇöÀç ÀÌ °ªÀº FTP ¼¼¼Ç¿¡´ëÇؼ¸¸ Àǹ̸¦ °®´Â´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ´ë±â½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ControlReceiveTimeout, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->ControlSendTimeout(10000);
$timeout = $HTTP->ControlSendTimeout();
- CrackURL URL, [flags]
- URLÀ» ±¸¼º¿ä¼Ò·Î ºÐ·¡Çؼ À̵éÀ» ¹è¿·Î ¸®ÅÏÇÑ´Ù. ¿À·ù°¡ ¹ß»ýÇÑ °æ¿ì¿¡´Â undef°¡ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº °ªÀ» Æ÷ÇÔÇÏ´Â ¹è¿ÀÌ ¸®ÅϵȴÙ:
scheme, host, port, username, password, path, extrainfo
¿¹¸¦µé¾î URL "http://www.divinf.it/index.htm#top"´Â ´ÙÀ½°ú °°ÀÌ ºÐ¸®µÉ ¼ö ÀÖ´Ù:
http, www.divinf.it, 80, anonymous, [email protected], /index.htm, #top
flagsÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù¸é ICU_ESCAPE°¡ ±âº»ÀûÀ¸·Î »ç¿ëµÈ´Ù. ICU_ESCAPEÀÇ °ª¿¡´ëÇؼ´Â Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¶ÇÇÑ CreateURLÀ» º»´Ù.
¿¹:
@parts=$INET->CrackURL("http://www.activeware.com");
($scheme, $host, $port, $user, $pass, $path, $extra) =
$INET->CrackURL("http://www.divinf.it:80/perl-win32/index.sht#feedback");
- CreateURL scheme, hostname, port, username, password, path, extrainfo, [flags]
- CreateURL hashref, [flags]
- ±¸¼º¿ä¼Ò·Î URLÀ» »ý¼ºÇÑ´Ù. ¿À·ù°¡ ¹ß»ýÇÑ °æ¿ì undefÀ» ¸®ÅÏÇϸç, ±×·¸Áö ¾ÊÀº °æ¿ì »ý¼ºµÈ URLÀ» ¸®ÅÏÇÑ´Ù.
¸¸¾à hashref(¿¬°ü¹è¿¿¡´ëÇÑ ÂüÁ¶)¸¦ Àü´ÞÇÏ¸é ´ÙÀ½ °ªµéÀÌ ¹è¿·Î ºÎÅÍ ÃëÇØÁø´Ù.
%hash=(
"scheme" => "scheme",
"hostname" => "hostname",
"port" => port,
"username" => "username",
"password" => "password",
"path" => "path",
"extrainfo" => "extrainfo"
);
flagsÀ» ÁöÁ¤ÇÏÁö ¾ÊÀǸé ICU_ESCAPE°¡ ±âº»ÀûÀ¸·Î »ç¿ëµÈ´Ù. ICU_ESCAPEÀÇ °ª¿¡´ëÇؼ´Â Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¶ÇÇÑ CrackURLÀ» º»´Ù.
¿¹:
$URL=$I->CreateURL("http", "www.divinf.it", 80, "", "", "/perl-win32/index.sht", "#feedback");
$URL=$I->CreateURL(\%params);
- DataReceiveTimeout [value]
- µ¥ÀÌŸ ¼ö½Å ¿äûÀÌ Ãë¼ÒµÇ±â Àü¿¡ µ¥ÀÌŸ ¼ö½Å ¿äû¿¡ »ç¿ëµÉ ´ë±â½Ã°£(1000ºÐÀÇ 1ÃÊ)À» Àаųª ¼³Á¤ÇÑ´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ´ë±â½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ¶ÇÇÑ DataSendTimeout, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->DataReceiveTimeout(10000);
$timeout = $HTTP->DataReceiveTimeout();
- DataSendTimeout [value]
- µ¥ÀÌŸ ¼Û½Å ¿äûÀÌ Ãë¼ÒµÇ±â Àü¿¡ µ¥ÀÌŸ ¼Û½Å ¿äû¿¡ »ç¿ëµÉ ´ë±â½Ã°£(1000ºÐÀÇ 1ÃÊ)À» Àаųª ¼³Á¤ÇÑ´Ù. value°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ´ë±â½Ã°£ÀÌ value·Î ¼³Á¤µÈ´Ù. ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ¶ÇÇÑ DataReceiveTimeout, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->DataSendTimeout(10000);
$timeout = $HTTP->DataSendTimeout();
- Error
- ¸¶Áö¸·À¸·Î ±â·ÏµÈ ¿À·ù¸¦ ¹è¿Çü½ÄÀ¸·Î ¸®ÅÏÇϰųª ¿À·ù ¹øÈ£¿Í ¿À·ù ¼³¸íÀ» Æ÷ÇÔÇÑ ¹è¿À̳ª ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù(ȯ°æ¿¡µû¶ó). ÀÓÀÇÀÇ Win32::Internet °³Ã¼(FTP ¼¼¼Çµî)¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù. Á¢ÇÒ ¼ö ÀÖ´Â ¿À·ù´Â ´ÙÀ½°ú °°Àº 3°¡Áö ÇüŸ¦ °®´Â´Ù. À̵éÀº ¸®ÅÏµÈ ¿À·ù¹øÈ£¿¡ÀÇÇØ ÀνĵȴÙ:
¿À·ù¹øÈ£ |
ÀÇ¹Ì |
-1 |
ÆÐÅ°Áö³»¿¡¼ »ç¼ÒÇÑ ¿À·ù°¡ ¹ß»ýÇß´Ù. ¿¹¸¦µé¾î À߸øµÈ °³Ã¼ÇüÀ¸·Î ¸Þ¼Òµå¸¦ »ç¿ëÇÏ·Á°í Çß´Ù. |
1 .. 11999 |
ÀϹÝÀû ¿À·ù°¡ ¹ß»ýÇßÀ¸¸ç, Win32::GetLastErrorÀÇ ¿À·ù ¸Þ½ÃÁö°¡ ¸®ÅϵȴÙ. |
12000°ú ÀÌ»ó |
ÀÎÅÍ³Ý ¿À·ù°¡ ¹ß»ýÇß´Ù; È®Àå Win32 ÀÎÅÍ³Ý APIÀÇ ¿À·ù ¸Þ½ÃÁö°¡ ¸®ÅϵȴÙ. |
¶ÇÇÑ GetResponseÀ» º»´Ù.
¿¹:
die $INET->Error(), qq();
($ErrNum, $ErrText) = $INET->Error();
- FetchURL URL
- HTTP, FTP, GOPHER URLÀÇ ³»¿ëÀ» °¡Á®¿Â´Ù. ÀÐÀº ÆÄÀÏÀÇ ³»¿ëÀÌ ¸®ÅϵȴÙ(¶Ç´Â ¿À·ù°¡ ¹ß»ýÇ߰ųª ¾î¶°ÇÑ °Íµµ ÀÐÁö ¸øÇß´Ù¸é undef°¡ ¸®ÅϵȴÙ). ¶ÇÇÑ OpenURL°ú ReadFileÀ» º»´Ù.
¿¹:
$file = $INET->FetchURL("http://www.yahoo.com/");
$file = $INET->FetchURL("ftp://www.activeware.com/contrib/internet.zip");
- FTP ftpobject, server, username, password, [port, pasv, context]
- FTP ftpobject, hashref
- ÁÖ¾îÁø username°ú password·Î Á¢¼ÓÇÒ server¿¡´ëÇØ FTP Á¢¼ÓÀ» ¿¬´Ù.
¸Å°³º¯¼ö¿Í °ªÀº ´ÙÀ½°ú °°´Ù.
¸Å°³º¯¼ö |
ÀÇ¹Ì |
±âº»°ª |
server |
Á¢¼ÓÇÒ ¼¹ö |
¾øÀ½ |
username |
¼¹ö¿¡ ·Î±×ÀÎ Çϴµ¥ »ç¿ëµÇ´Â »ç¿ëÀÚ À̸§ |
anonymous |
password |
¼¹ö¿¡ ·Î±×ÀÎ Çϴµ¥ »ç¿ëµÇ´Â ¾ÏÈ£ |
¾øÀ½ |
port |
¼¹öÀÇ FTP Æ÷Æ® |
21 |
pasv |
"0" ÀÌ¿ÜÀÇ °ªÀ» »ç¿ëÇϸé PASS Àü¼Û¸ðµå°¡ »ç¿ëµÈ´Ù. |
ºÎ¸ð ÀÎÅÍ³Ý °³Ã¼·ÎºÎÅÍ ÃëÇØÁø´Ù; ÀÌ°ªÀ» Pasv ¸Þ¼Òµå·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. |
context |
ºñµ¿±âÀÎ °æ¿ì µ¿ÀÛÀ» È®ÀÎÇϱâÀ§ÇÑ ¹øÈ£. ºñµ¿±â µ¿ÀÛ¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â SetStatusCallback°ú GetStatusCallbackÀ» º»´Ù. |
¾øÀ½ |
¸¸¾à hashref(¿¬°ü¹è¿ ÂüÁ¶)À» Àü´ÞÇÏ¸é ´ÙÀ½°ú °°Àº °ªµéÀÌ ¹è¿·ÎºÎÅÍ ÃëÇØÁø´Ù:
%hash=(
"server" => "server",
"username" => "username",
"password" => "password",
"port" => port,
"pasv" => pasv,
"context" => context,
);
ÀÌ ¸Þ¼Òµå´Â Á¢¼Ó¿¡ ½ÇÆÐÇÒ °æ¿ì undef¸¦ ¸®ÅÏÇϸç, ±×·¸Áö ¾ÊÀº °æ¿ì ÀÓÀÇÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ÀÏ´Ü Á¢¼ÓÀÌµÇ¸é »õ·Ó°Ô »ý¼ºµÈ ftpobjectÀÇ ¸Þ¼Òµå·Î¼ ÀÓÀÇÀÇ FTP ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
¿¹:
$result = $INET->FTP($FTP, "ftp.activeware.com", "anonymous", "[email protected]");
# and then for example...
$FTP->Cd("/ntperl/perl5.001m/CurrentBuild");
$params{"server"} = "ftp.activeware.com";
$params{"password"} = "[email protected]";
$params{"pasv"} = 0;
$result = $INET->FTP($FTP,\%params);
- GetResponse
- ¸¶Áö¸·À¸·Î ¼öÇàµÈ ÇÔ¼ö¿¡´ëÇÑ ÀÀ´äÀ¸·Î ¿ø°Ý¼¹ö°¡ Àü¼ÛÇÑ ÅؽºÆ®¸¦ ¸®ÅÏÇÑ´Ù. ÀÓÀÇÀÇ Win32::Internet °³Ã¼¿¡ Àû¿ëµÇ¸ç, ƯÈ÷ FTP ¼¼¼Ç¿¡ Àû¿ëµÈ´Ù. ¶ÇÇÑ Error ÇÔ¼ö¸¦ º»´Ù.
¿¹:
print $INET->GetResponse();
$INET->FTP($FTP, "ftp.activeware.com", "anonymous", "[email protected]");
print $FTP->GetResponse();
- GetStatusCallback context
- context¿¡ÀÇÇØ È®ÀÎµÈ ºñµ¿±â µ¿ÀÛÀÇ ÁøÇà°úÁ¤¿¡´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù; À̵é Á¤º¸´Â µÎ°³ÀÇ °ª, »óÅÂÄÚµå(INTERNET_STATUS_* »ó¼öÁß Çϳª)¿Í »óÅÂÄڵ忡µû¸¥ Ãß°¡ÀûÀÎ °ªÀ¸·Î ±¸¼ºµÈ´Ù; ¿¹¸¦µé¾î ¸®ÅÏµÈ »óÅÂÄڵ尡 INTERNET_STATUS_HANDLE_CREATED¶ó¸é µÎ¹ø° °ªÀº ¹æ±Ý »ý¼ºµÈ ÇÚµéÀÌ µÈ´Ù. ÀÌ µé°ª¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¶ÇÇÑ SetStatusCallback¸¦ º»´Ù.
¿¹:
($status, $info) = $INET->GetStatusCallback(1);
- HTTP httpobject, server, username, password, [port, flags, context]
- HTTP httpobject, hashref
- ÁÖ¾îÁø username°ú password·Î Á¢¼ÓÇÒ server¿¡´ëÇÑ HTTP Á¢¼ÓÀ» ¿¬´Ù.
¸Å°³º¯¼ö¿Í °ªÀº ´ÙÀ½°ú °°´Ù:
¸Å°³º¯¼ö |
ÀÇ¹Ì |
±âº»°ª |
server |
Á¢¼ÓÇÒ ¼¹ö |
¾øÀ½ |
username |
¼¹ö¿¡ ·Î±×ÀÎ Çϴµ¥ »ç¿ëµÇ´Â »ç¿ëÀÚ À̸§ |
anonymous |
password |
¼¹ö¿¡ ·Î±×ÀÎ Çϴµ¥ »ç¿ëµÇ´Â ¾ÏÈ£ |
¾øÀ½ |
port |
¼¹öÀÇ HTTP Æ÷Æ® |
80 |
flags |
ÇÔ¼ö µ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â Ãß°¡ÀûÀÎ Ç÷¢ |
¾øÀ½ |
context |
ºñµ¿±âÀΰæ¿ì µ¿ÀÛÀ» È®ÀÎÇϱâÀ§ÇÑ ¹øÈ£. ºñµ¿±â µ¿ÀÛ¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â SetStatusCallback°ú GetStatusCallbackÀ» º»´Ù. |
¾øÀ½ |
ÀÌµé ¸Å°³º¯¼ö¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ º»´Ù.
¸¸¾à hashref(¿¬°ü¹è¿ ÂüÁ¶)À» Àü´ÞÇÑ´Ù¸é ´ÙÀ½°ú °°Àº °ªµéÀÌ ¹è¿·ÎºÎÅÍ ÃëÇØÁø´Ù:
%hash=(
"server" => "server",
"username" => "username",
"password" => "password",
"port" => port,
"flags" => flags,
"context" => context,
);
ÀÌ ¸Þ¼Òµå´Â Á¢¼Ó¿¡ ½ÇÆÐÇÒ °æ¿ì undef¸¦ ¸®ÅÏÇϸç, ±×·¸Áö ¾ÊÀº °æ¿ì ÀÓÀÇÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ÀÏ´Ü Á¢¼ÓÀÌµÇ¸é »õ·Ó°Ô »ý¼ºµÈ httpobjectÀÇ ¸Þ¼Òµå·Î¼ ÀÓÀÇÀÇ HTTP ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
¿¹:
$result = $INET->HTTP($HTTP,"www.activeware.com","anonymous","[email protected]");
# and then for example...
($statuscode, $headers, $file) = $HTTP->Request("/gifs/camel.gif");
$params{"server"} = "www.activeware.com";
$params{"password"} = "[email protected]";
$params{"flags"} = INTERNET_FLAG_RELOAD;
$result = $INET->HTTP($HTTP,\%params);
- new Win32::Internet [useragent, opentype, proxy, proxybypass, flags]
- new Win32::Internet [hashref]
- »õ·Î¿î ÀÎÅÍ³Ý °³Ã¼¸¦ »ý¼ºÇÏ°í ÀÎÅÍ³Ý ÇÔ¼öÀÇ »ç¿ëÀ» ÃʱâÈÇÑ´Ù; ÀÌ°ÍÀº ÀÌ ÆÐÅ°ÁöÀÇ ÀÓÀÇÀÇ ÇÔ¼ö°¡ »ç¿ëµÇ±âÀü¿¡ ½ÇÇàµÇ¾î¾ß ÇÑ´Ù. Á¢¼Ó¿¡ ½ÇÆÐÇϸé undef°¡ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀº °æ¿ì ÀÓÀÇÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ¸Å°³º¯¼ö¿Í °ªÀº ´ÙÀ½°ú °°´Ù:
¸Å°³º¯¼ö |
ÀÇ¹Ì |
±âº»°ª |
useragent |
HTTP ¿äûÀ» Àü´ÞÇÑ Å¬¶óÀ̾ðÆ®. OpenRequestÀ» º»´Ù. |
Perl-Win32::Internet/version |
opentype |
ÀÎÅͳÝÀ» Á¢±ÙÇÏ´Â ¹æ¹ý(¿¹, Á÷Á¢ ¶Ç´Â ÇÁ·Ï½Ã »ç¿ë). |
INTERNET_OPEN_TYPE_DIRECT |
proxy |
»ç¿ëÇÒ ÇÁ·Ï½Ã ¼¹ö(¶Ç´Â ¼¹ö)ÀÇ À̸§. |
¾øÀ½ |
proxybypass |
È£½ºÆ® ¸í ¶Ç´Â IP ÁÖ¼Ò, ¶Ç´Â µÑ´ÙÀÇ ¸ñ·Ï. |
¾øÀ½ |
flags |
ÇÔ¼öÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â Ãß°¡ÀûÀÎ Ç÷¢. |
¾øÀ½ |
ÀÌµé ¸Å°³º¯¼ö¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ º»´Ù. ¸¸¾à hashref(¿¬°ü¹è¿ ÂüÁ¶)À» Àü´ÞÇÑ´Ù¸é ´ÙÀ½°ú °°Àº °ªµéÀÌ ¹è¿·ÎºÎÅÍ ÃëÇØÁø´Ù:
%hash=(
"useragent" => "useragent",
"opentype" => "opentype",
"proxy" => "proxy",
"proxybypass" => "proxybypass",
"flags" => flags,
);
¿¹:
$INET = new Win32::Internet();
die qq(Cannot connect to Internet...) if ! $INET;
$INET = new Win32::Internet("Mozilla/3.0", INTERNET_OPEN_TYPE_PROXY, "www.Microsoft.com", "");
$params{"flags"} = INTERNET_FLAG_ASYNC;
$INET = new Win32::Internet(\%params);
- OpenURL urlobject, URL
- HTTP, FTP, GOPHER URL¿¡´ëÇÑ Á¢¼ÓÀ» ¿¬´Ù. ¿À·ù°¡ ¹ß»ýÇϸé undef¸¦ ¸®ÅÏÇϸç, Á¢¼ÓÀÌ ¼º°øÀûÀÎ °æ¿ì¿¡´Â ÀÓÀÇÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ÀÏ´Ü Á¢¼ÓµÇ¸é »õ·Î »ý¼ºµÈ urlobject¿¡´ëÇÑ ¸Þ¼Òµå, QueryDataAvailable°ú ReadFile¸¦ Àû¿ëÇÔÀ¸·Î¼ URLÀÇ ³»¿ëÀ» ÀÐÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ FetchURLÀ» º»´Ù.
¿¹:
$INET->OpenURL($URL, "http://www.yahoo.com/");
$bytes = $URL->QueryDataAvailable();
$file = $URL->ReadEntireFile();
$URL->Close();
- Password [password]
- FTP³ª HTTP Á¢¼Ó¿¡ »ç¿ëµÈ ¾ÏÈ£¸¦ Àаųª ¼³Á¤ÇÑ´Ù. password ¸Å°³º¯¼ö°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é ¾ÏÈ£°¡ password·Î ¼³Á¤µÈ´Ù. ¶ÇÇÑ Username, QueryOption°ú SetOptionÀ» º»´Ù.
¿¹:
$HTTP->Password("splurfgnagbxam");
$password = $HTTP->Password();
- QueryDataAvailable
- ReadFile¿¡ À̾îÁö´Â È£Ãâ¿¡ÀÇÇØ Áï½Ã ÀÐÇôÁú ¼ö ÀÖ´Â µ¥ÀÌŸÀÇ Å©±â(¹ÙÀÌÆ®)¸¦ ¸®ÅÏÇÑ´Ù(¿À·ù°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡´Â undef¸¦ ¸®ÅÏÇÑ´Ù). URLÀ̳ª HTTP ¿äû °³Ã¼¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù.
¿¹:
$INET->OpenURL($URL, "http://www.yahoo.com/");
$bytes = $URL->QueryDataAvailable();
- QueryOption option
- ÀÎÅÍ³Ý ¿É¼ÇÀ» ÁúÀÇÇÑ´Ù. option¿¡ °¡´ÉÇÑ °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¶ÇÇÑ SetOptionÀ» º»´Ù.
¿¹:
$value = $INET->QueryOption(INTERNET_OPTION_CONNECT_TIMEOUT);
$value = $HTTP->QueryOption(INTERNET_OPTION_USERNAME);
- ReadEntireFile
- ¿·ÁÁø URLÀ̳ª HTTP ¿äû °³Ã¼·ÎºÎÅÍ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç µ¥ÀÌŸ¸¦ Àд´Ù. ÀϹÝÀûÀ¸·Î ÀÐÇôÁø µ¥ÀÌŸ¸¦ ¸®ÅÏÇÏ¸ç ¿À·ù½Ã undef¸¦ ¸®ÅÏÇÑ´Ù. ¶ÇÇÑ ReadFileÀ» º»´Ù.
¿¹:
$INET->OpenURL($URL, "http://www.yahoo.com/");
$file = $URL->ReadEntireFile();
- ReadFile bytes
- ¿·ÁÁø URLÀ̳ª HTTP ¿äû °³Ã¼·ÎºÎÅÍ µ¥ÀÌŸ¸¦ bytes¸¸Å Àд´Ù. ÀϹÝÀûÀ¸·Î ÀÐÇôÁø µ¥ÀÌŸ¸¦ ¸®ÅÏÇÏ¸ç ¿À·ù½Ã undef¸¦ ¸®ÅÏÇÑ´Ù. ¶ÇÇÑ QueryDataAvailable°ú ReadEntireFile¸¦ º»´Ù.
ÁÖÀÇ: bytes¸¦ Çã¿ëÇÒ ¼ö ÀÖ´Â °ªÀ¸·Î À¯ÁöÇØ¾ß ÇÑ´Ù. »ç½Ç ReadEntireFile´Â ´ÜÁö 16k¸¦ ÀбâÀ§Çؼ QueryDataAvailable°ú ReadFile¸¦ ¼øȯÀûÀ¸·Î »ç¿ëÇÑ´Ù.
¿¹:
$INET->OpenURL($URL, "http://www.yahoo.com/");
$chunk = $URL->ReadFile(16000);
- SetOption option, value
- ÀÎÅÍ³Ý ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù. °¡´ÉÇÑ optionÀÇ °ªÀº Microsoft Win32 ÀÎÅÍ³Ý ÇÔ¼ö¸¦ ÂüÁ¶ÇÑ´Ù. ¶ÇÇÑ QueryOptionÀ» º»´Ù.
¿¹:
$INET->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,10000);
$HTTP->SetOption(INTERNET_OPTION_USERNAME,"dada");
- SetStatusCallback
- ºñµ¿±â µ¿ÀÛÀÇ ÁøÇà°úÁ¤¿¡´ëÇÑ µ¥ÀÌŸ¸¦ ¸®ÅÏÇϴµ¥ »ç¿ëµÇ´Â ÄݹéÀ» ÃʱâÈÇÑ´Ù.
¿¹:
$INET->SetStatusCallback();
ÀÌ °ÍÀº ºñµ¿±â µ¿ÀÛÀ» ¼öÇàÇÏ´Â ÇÊ¿äÇÑ ´Ü°èÁß ÇϳªÀÌ´Ù; ¿ÏÀüÇÑ ÀýÂ÷´Â ´ÙÀ½°ú °°´Ù:
# use the INTERNET_FLAG_ASYNC when initializing
$params{'flags'}=INTERNET_FLAG_ASYNC;
$INET = new Win32::Internet(\%params);
# initialize the callback routine
$INET->SetStatusCallback();
# specify the context parameter (the last 1 in this case)
$INET->HTTP($HTTP, "www.yahoo.com", "anonymous", "[email protected]", 80, 0, 1);
ÀÌ ½ÃÁ¡¿¡¼ Á¦¾î±ÇÀº Áï½Ã ÆÞ·Î ¸®ÅϵǸç $INET->Error()´Â 997À» ¸®ÅÏÇÑ´Ù. ÀÌ °ªÀº ºñµ¿±â I/O µ¿ÀÛÀÌ ÀÓ¹ÚÇßÀ½À» ÀǹÌÇÑ´Ù. ÀÌÁ¦ ¾î¶°ÇÑ ÀÏÀÌ ¹ß»ýÇß´ÂÁö È®ÀÎÇϱâÀ§ÇØ ¼øȯ¹®³»¿¡ ´ÙÀ½°ú °°Àº Äڵ带 È£ÃâÇÒ ¼ö ÀÖ´Ù:
$HTTP->GetStatusCallback(1);
¶ÇÇÑ GetStatusCallback¸¦ º»´Ù.
- TimeConvert time
TimeConvert seconds, minute, hours, day, month, year, day_of_week, RFC
- ù¹ø° Çü½ÄÀº HTTP ½Ã°£/³¯ÀÚ¸¦ ÃëÇÏ¸ç º¯È¯µÈ ½Ã°£/³¯ÀÚ¸¦ ´ÙÀ½°ú °°Àº ¹è¿·Î ¸®ÅÏÇÑ´Ù:
seconds, minute, hours, day, month, year, day_of_week
µÎ¹ø° Çü½ÄÀº ù¹ø° Çü½Ä°ú ¹Ý´ëÀÇ µ¿ÀÛÀ» ÃëÇÑ´Ù; Áï, ÀÌµé °ªÀ» ÃëÇØ RFC ¸Å°³º¯¼ö¿¡ÀÇÇØ ÁöÁ¤µÈ RFC Çü½ÄÀ¸·Î HTTP ³¯ÀÚ/½Ã°£À» ¸®ÅÏÇÑ´Ù.
¿¹:
($sec, $min, $hour, $day, $mday, $year, $wday) = $INET->TimeConvert("Sun, 26 Jan 1997 20:01:52 GMT");
# the opposite DOESN'T WORK! which value should $RFC have???
$time = $INET->TimeConvert(52, 1, 20, 26, 1, 1997, 0, $RFC);
- UserAgent [name]
- HTTP ¿äû¿¡ »ç¿ëµÈ User Agent¸¦ ÀÐ°í ¼³Á¤ÇÑ´Ù. name ¸Å°³º¯¼ö°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é User Agent°¡ nameÀ¸·Î ¼³Á¤µÈ´Ù. ¶ÇÇÑ QueryOption°ú SetOption¸¦ º»´Ù.
¿¹:
$INET->UserAgent("Mozilla/3.0");
$useragent = $INET->UserAgent();
- Username [name]
- FTP³ª HTTP Á¢¼Ó¿¡ »ç¿ëµÈ »ç¿ëÀÚ À̸§À» Àаųª ¼³Á¤ÇÑ´Ù. name ¸Å°³º¯¼ö°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÇöÀçÀÇ °ªÀÌ ¸®ÅϵǸç, ±×·¸Áö ¾ÊÀ¸¸é »ç¿ëÀÚ À̸§ÀÌ nameÀ¸·Î ¼³Á¤µÈ´Ù. ¶ÇÇÑ Password, QueryOption°ú SetOption¸¦ º»´Ù.
¿¹:
$HTTP->Username("dada");
$username = $HTTP->Username();
- Version
- Win32::Internet ÆÐÅ°Áö¿Í WININET.DLLÀÇ ¹öÀü ¹øÈ£¸¦ ȯ°æ¿¡µû¶ó ¹è¿À̳ª ¹®ÀÚ¿·Î ¸®ÅÏÇÑ´Ù. ¸®ÅÏµÈ ¹®ÀÚ¿Àº "package_version/DLL_version"À» Æ÷ÇÔÇÏ´Â ¹Ý¸é, ¹è¿Àº "package_version", "DLL_version"À» Æ÷ÇÔÇÑ´Ù.
¿¹:
$version = $INET->Version(); # should return "0.06/4.70.1215"
@version = $INET->Version(); # should return ("0.06", "4.70.1215")
| | |
|