³¯Â¥: 1996-05-06 | ±Û¾´ÀÌ: µµ¾Æ | 38330 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

ÆÞ ÀÀ¿ë - Á¦ 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")


´ÙÀ½±Û: ÆÞ ÀÀ¿ë - Á¦ 7°­ Win32::Internet ºÎ·Ï (13574)1996-05-08
ÀÌÀü±Û: ÆÞ ÀÀ¿ë - Á¦ 5°­ Win32::Internet ¼Ò°³ (8596)1996-05-05
<< ÀÌÀüÆäÀÌÁö (1/4)´ÙÀ½ÆäÀÌÁö (3/4) >>

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.