internet.html

来自「perl教程」· HTML 代码 · 共 1,063 行 · 第 1/5 页

HTML
1,063
字号
<pre>
    <span class="variable">%hash</span><span class="operator">=(</span>
      <span class="string">"server"</span>   <span class="operator">=&gt;</span> <span class="string">"server"</span><span class="operator">,</span>
      <span class="string">"username"</span> <span class="operator">=&gt;</span> <span class="string">"username"</span><span class="operator">,</span>
      <span class="string">"password"</span> <span class="operator">=&gt;</span> <span class="string">"password"</span><span class="operator">,</span>
      <span class="string">"port"</span>     <span class="operator">=&gt;</span> <span class="variable">port</span><span class="operator">,</span>
      <span class="string">"flags"</span>    <span class="operator">=&gt;</span> <span class="variable">flags</span><span class="operator">,</span>
      <span class="string">"context"</span>  <span class="operator">=&gt;</span> <span class="variable">context</span><span class="operator">,</span>
    <span class="operator">);</span>
</pre>
<p>This method returns <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> if the connection failed, a number
otherwise.  You can then call any of the <a href="#http_functions">HTTP functions</a> as
methods of the newly created <em>httpobject</em>.</p>
<p>Example:</p>
<pre>
    <span class="variable">$result</span> <span class="operator">=</span> <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">HTTP</span><span class="operator">(</span><span class="variable">$HTTP</span><span class="operator">,</span><span class="string">"www.activeware.com"</span><span class="operator">,</span><span class="string">"anonymous"</span><span class="operator">,</span><span class="string">"dada\@divinf.it"</span><span class="operator">);</span>
    <span class="comment"># and then for example...</span>
    <span class="operator">(</span><span class="variable">$statuscode</span><span class="operator">,</span> <span class="variable">$headers</span><span class="operator">,</span> <span class="variable">$file</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">$HTTP</span><span class="operator">-&gt;</span><span class="variable">Request</span><span class="operator">(</span><span class="string">"/gifs/camel.gif"</span><span class="operator">);</span>
</pre>
<pre>
    <span class="variable">$params</span><span class="operator">{</span><span class="string">"server"</span><span class="operator">}</span> <span class="operator">=</span> <span class="string">"www.activeware.com"</span><span class="operator">;</span>
    <span class="variable">$params</span><span class="operator">{</span><span class="string">"password"</span><span class="operator">}</span> <span class="operator">=</span> <span class="string">"dada\@divinf.it"</span><span class="operator">;</span>
    <span class="variable">$params</span><span class="operator">{</span><span class="string">"flags"</span><span class="operator">}</span> <span class="operator">=</span> <span class="variable">INTERNET_FLAG_RELOAD</span><span class="operator">;</span>
    <span class="variable">$result</span> <span class="operator">=</span> <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">HTTP</span><span class="operator">(</span><span class="variable">$HTTP</span><span class="operator">,\</span><span class="variable">%params</span><span class="operator">);</span>
</pre>
<dt><strong><a name="item_new_win32_3a_3ainternet__5buseragent_2c_opentype_2">new Win32::Internet [useragent, opentype, proxy, proxybypass, flags]</a></strong>

<dt><strong><a name="item_new_win32_3a_3ainternet__5bhashref_5d">new Win32::Internet [hashref]</a></strong>

<dd>
<p>Creates a new Internet object and initializes the use of the Internet
functions; this is required before any of the functions of this
package can be used.  Returns <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> if the connection fails, a number
otherwise.  The parameters and their values are:</p>
</dd>
<ul>
<li><strong><a name="item_useragent">useragent</a></strong>

<p>The user agent passed to HTTP requests.  See <code>OpenRequest</code>.  Default:
Perl-Win32::Internet/<em>version</em>.</p>
</li>
<li><strong><a name="item_opentype">opentype</a></strong>

<p>How to access to the Internet (eg. directly or using a proxy).
Default: INTERNET_OPEN_TYPE_DIRECT.</p>
</li>
<li><strong><a name="item_proxy">proxy</a></strong>

<p>Name of the proxy server (or servers) to use.  Default: <em>none</em>.</p>
</li>
<li><strong><a name="item_proxybypass">proxybypass</a></strong>

<p>Optional list of host names or IP addresses, or both, that are known
locally.  Default: <em>none</em>.</p>
</li>
<li><strong>flags</strong>

<p>Additional flags affecting the behavior of the function.  Default:
<em>none</em>.</p>
</li>
</ul>
<p>Refer to the <a href="#microsoft_win32_internet_functions">Microsoft Win32 Internet Functions</a> documentation for
more details on those parameters.  If you pass <em>hashref</em> (a reference to
an hash array), the following values are taken from the array:</p>
<pre>
    <span class="variable">%hash</span><span class="operator">=(</span>
      <span class="string">"useragent"</span>   <span class="operator">=&gt;</span> <span class="string">"useragent"</span><span class="operator">,</span>
      <span class="string">"opentype"</span>    <span class="operator">=&gt;</span> <span class="string">"opentype"</span><span class="operator">,</span>
      <span class="string">"proxy"</span>       <span class="operator">=&gt;</span> <span class="string">"proxy"</span><span class="operator">,</span>
      <span class="string">"proxybypass"</span> <span class="operator">=&gt;</span> <span class="string">"proxybypass"</span><span class="operator">,</span>
      <span class="string">"flags"</span>       <span class="operator">=&gt;</span> <span class="variable">flags</span><span class="operator">,</span>
    <span class="operator">);</span>
</pre>
<p>Example:</p>
<pre>
    <span class="variable">$INET</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Win32::Internet</span><span class="operator">();</span>
    <span class="keyword">die</span> <span class="string">qq(Cannot connect to Internet...\n)</span> <span class="keyword">if</span> <span class="operator">!</span> <span class="variable">$INET</span><span class="operator">;</span>
</pre>
<pre>
    <span class="variable">$INET</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Win32::Internet</span><span class="operator">(</span><span class="string">"Mozilla/3.0"</span><span class="operator">,</span> <span class="variable">INTERNET_OPEN_TYPE_PROXY</span><span class="operator">,</span> <span class="string">"www.microsoft.com"</span><span class="operator">,</span> <span class="string">""</span><span class="operator">);</span>
</pre>
<pre>
    <span class="variable">$params</span><span class="operator">{</span><span class="string">"flags"</span><span class="operator">}</span> <span class="operator">=</span> <span class="variable">INTERNET_FLAG_ASYNC</span><span class="operator">;</span>
    <span class="variable">$INET</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Win32::Internet</span><span class="operator">(\</span><span class="variable">%params</span><span class="operator">);</span>
</pre>
<dt><strong><a name="item_openurl_urlobject_2c_url">OpenURL urlobject, URL</a></strong>

<dd>
<p>Opens a connection to an HTTP, FTP or GOPHER Uniform Resource Location
(URL).  Returns <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> on errors or a number if the connection was
succesful.  You can then retrieve the URL content by applying the
methods <a href="#item_querydataavailable"><code>QueryDataAvailable</code></a> and <code>ReadFile</code> on the newly created
<em>urlobject</em>.  See also <code>FetchURL</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">OpenURL</span><span class="operator">(</span><span class="variable">$URL</span><span class="operator">,</span> <span class="string">"http://www.yahoo.com/"</span><span class="operator">);</span>
    <span class="variable">$bytes</span> <span class="operator">=</span> <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">QueryDataAvailable</span><span class="operator">();</span>
    <span class="variable">$file</span> <span class="operator">=</span> <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">ReadEntireFile</span><span class="operator">();</span>
    <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">Close</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_password__5bpassword_5d">Password [password]</a></strong>

<dd>
<p>Reads or sets the password used for an <code>FTP</code> or <code>HTTP</code> connection.
If no <em>password</em> parameter is specified, the current value is
returned; otherwise, the password is set to <em>password</em>.  See also
<code>Username</code>, <code>QueryOption</code> and <code>SetOption</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$HTTP</span><span class="operator">-&gt;</span><span class="variable">Password</span><span class="operator">(</span><span class="string">"splurfgnagbxam"</span><span class="operator">);</span>
    <span class="variable">$password</span> <span class="operator">=</span> <span class="variable">$HTTP</span><span class="operator">-&gt;</span><span class="variable">Password</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_querydataavailable">QueryDataAvailable</a></strong>

<dd>
<p>Returns the number of bytes of data that are available to be read
immediately by a subsequent call to <code>ReadFile</code> (or <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> on
errors).  Can be applied to URL or HTTP request objects.  See
<code>OpenURL</code> or <code>OpenRequest</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">OpenURL</span><span class="operator">(</span><span class="variable">$URL</span><span class="operator">,</span> <span class="string">"http://www.yahoo.com/"</span><span class="operator">);</span>
    <span class="variable">$bytes</span> <span class="operator">=</span> <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">QueryDataAvailable</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_queryoption_option">QueryOption option</a></strong>

<dd>
<p>Queries an Internet option.  For the possible values of <em>option</em>,
refer to the <a href="#microsoft_win32_internet_functions">Microsoft Win32 Internet Functions</a> document.  See
also <code>SetOption</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$value</span> <span class="operator">=</span> <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">QueryOption</span><span class="operator">(</span><span class="variable">INTERNET_OPTION_CONNECT_TIMEOUT</span><span class="operator">);</span>
    <span class="variable">$value</span> <span class="operator">=</span> <span class="variable">$HTTP</span><span class="operator">-&gt;</span><span class="variable">QueryOption</span><span class="operator">(</span><span class="variable">INTERNET_OPTION_USERNAME</span><span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_readentirefile">ReadEntireFile</a></strong>

<dd>
<p>Reads all the data available from an opened URL or HTTP request
object.  Returns what have been read or <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> on errors.  See also
<code>OpenURL</code>, <code>OpenRequest</code> and <code>ReadFile</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">OpenURL</span><span class="operator">(</span><span class="variable">$URL</span><span class="operator">,</span> <span class="string">"http://www.yahoo.com/"</span><span class="operator">);</span>
    <span class="variable">$file</span> <span class="operator">=</span> <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">ReadEntireFile</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_readfile_bytes">ReadFile bytes</a></strong>

<dd>
<p>Reads <em>bytes</em> bytes of data from an opened URL or HTTP request
object.  Returns what have been read or <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> on errors.  See also
<code>OpenURL</code>, <code>OpenRequest</code>, <a href="#item_querydataavailable"><code>QueryDataAvailable</code></a> and
<a href="#item_readentirefile"><code>ReadEntireFile</code></a>.</p>
</dd>
<dd>
<p><strong>Note:</strong> be careful to keep <em>bytes</em> to an acceptable value (eg.  don't
tell him to swallow megabytes at once...).  <a href="#item_readentirefile"><code>ReadEntireFile</code></a> in fact
uses <a href="#item_querydataavailable"><code>QueryDataAvailable</code></a> and <code>ReadFile</code> in a loop to read no more
than 16k at a time.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">OpenURL</span><span class="operator">(</span><span class="variable">$URL</span><span class="operator">,</span> <span class="string">"http://www.yahoo.com/"</span><span class="operator">);</span>
    <span class="variable">$chunk</span> <span class="operator">=</span> <span class="variable">$URL</span><span class="operator">-&gt;</span><span class="variable">ReadFile</span><span class="operator">(</span><span class="number">16000</span><span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_setoption_option_2c_value">SetOption option, value</a></strong>

<dd>
<p>Sets an Internet option.  For the possible values of <em>option</em>, refer to
the <a href="#microsoft_win32_internet_functions">Microsoft Win32 Internet Functions</a> document.  See also
<code>QueryOption</code>.</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
    <span class="variable">$INET</span><span class="operator">-&gt;</span><span class="variable">SetOption</span><span class="operator">(</span><span class="variable">INTERNET_OPTION_CONNECT_TIMEOUT</span><span class="operator">,</span><span class="number">10000</span><span class="operator">);</span>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?