lwpcook.html

来自「perl教程」· HTML 代码 · 共 364 行 · 第 1/3 页

HTML
364
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../displayToc.js"></script>
<script language="JavaScript" src="../tocParas.js"></script>
<script language="JavaScript" src="../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../scineplex.css">
<title>lwpcook - The libwww-perl cookbook</title>
<link rel="stylesheet" href="../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',1);</script>
<h1><a>lwpcook - The libwww-perl cookbook</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#get">GET</a></li>
	<li><a href="#head">HEAD</a></li>
	<li><a href="#post">POST</a></li>
	<li><a href="#proxies">PROXIES</a></li>
	<li><a href="#access_to_protected_documents">ACCESS TO PROTECTED DOCUMENTS</a></li>
	<li><a href="#cookies">COOKIES</a></li>
	<li><a href="#https">HTTPS</a></li>
	<li><a href="#mirroring">MIRRORING</a></li>
	<li><a href="#large_documents">LARGE DOCUMENTS</a></li>
	<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>lwpcook - The libwww-perl cookbook</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This document contain some examples that show typical usage of the
libwww-perl library.  You should consult the documentation for the
individual modules for more detail.</p>
<p>All examples should be runnable programs. You can, in most cases, test
the code sections by piping the program text directly to perl.</p>
<p>
</p>
<hr />
<h1><a name="get">GET</a></h1>
<p>It is very easy to use this library to just fetch documents from the
net.  The LWP::Simple module provides the <code>get()</code> function that return
the document specified by its URL argument:</p>
<pre>
  <span class="keyword">use</span> <span class="variable">LWP::Simple</span><span class="operator">;</span>
  <span class="variable">$doc</span> <span class="operator">=</span> <span class="variable">get</span> <span class="string">'http://www.linpro.no/lwp/'</span><span class="operator">;</span>
</pre>
<p>or, as a perl one-liner using the <code>getprint()</code> function:</p>
<pre>
  perl -MLWP::Simple -e 'getprint &quot;<a href="http://www.linpro.no/lwp/&quot">http://www.linpro.no/lwp/&quot</a>;'</pre>
<p>or, how about fetching the latest perl by running this command:</p>
<pre>
  perl -MLWP::Simple -e '
    getstore &quot;<a href="ftp://ftp.sunet.se/pub/lang/perl/CPAN/src/latest.tar.gz&quot">ftp://ftp.sunet.se/pub/lang/perl/CPAN/src/latest.tar.gz&quot</a>;,
             &quot;perl.tar.gz&quot;'</pre>
<p>You will probably first want to find a CPAN site closer to you by
running something like the following command:</p>
<pre>
  perl -MLWP::Simple -e 'getprint &quot;<a href="http://www.perl.com/perl/CPAN/CPAN.html&quot">http://www.perl.com/perl/CPAN/CPAN.html&quot</a>;'</pre>
<p>Enough of this simple stuff!  The LWP object oriented interface gives
you more control over the request sent to the server.  Using this
interface you have full control over headers sent and how you want to
handle the response returned.</p>
<pre>
  <span class="keyword">use</span> <span class="variable">LWP::UserAgent</span><span class="operator">;</span>
  <span class="variable">$ua</span> <span class="operator">=</span> <span class="variable">LWP::UserAgent</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">;</span>
  <span class="variable">$ua</span><span class="operator">-&gt;</span><span class="variable">agent</span><span class="operator">(</span><span class="string">"$0/0.1 "</span> <span class="operator">.</span> <span class="variable">$ua</span><span class="operator">-&gt;</span><span class="variable">agent</span><span class="operator">);</span>
  <span class="comment"># $ua-&gt;agent("Mozilla/8.0") # pretend we are very capable browser</span>
</pre>
<pre>
  <span class="variable">$req</span> <span class="operator">=</span> <span class="variable">HTTP::Request</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">GET</span> <span class="operator">=&gt;</span> <span class="string">'http://www.linpro.no/lwp'</span><span class="operator">);</span>
  <span class="variable">$req</span><span class="operator">-&gt;</span><span class="variable">header</span><span class="operator">(</span><span class="string">'Accept'</span> <span class="operator">=&gt;</span> <span class="string">'text/html'</span><span class="operator">);</span>
</pre>
<pre>
  <span class="comment"># send request</span>
  <span class="variable">$res</span> <span class="operator">=</span> <span class="variable">$ua</span><span class="operator">-&gt;</span><span class="variable">request</span><span class="operator">(</span><span class="variable">$req</span><span class="operator">);</span>
</pre>
<pre>
  <span class="comment"># check the outcome</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$res</span><span class="operator">-&gt;</span><span class="variable">is_success</span><span class="operator">)</span> <span class="operator">{</span>
     <span class="keyword">print</span> <span class="variable">$res</span><span class="operator">-&gt;</span><span class="variable">decoded_content</span><span class="operator">;</span>
  <span class="operator">}</span>
  <span class="keyword">else</span> <span class="operator">{</span>
     <span class="keyword">print</span> <span class="string">"Error: "</span> <span class="operator">.</span> <span class="variable">$res</span><span class="operator">-&gt;</span><span class="variable">status_line</span> <span class="operator">.</span> <span class="string">"\n"</span><span class="operator">;</span>
  <span class="operator">}</span>
</pre>
<p>The lwp-request program (alias GET) that is distributed with the
library can also be used to fetch documents from WWW servers.</p>
<p>
</p>
<hr />
<h1><a name="head">HEAD</a></h1>
<p>If you just want to check if a document is present (i.e. the URL is
valid) try to run code that looks like this:</p>
<pre>
  <span class="keyword">use</span> <span class="variable">LWP::Simple</span><span class="operator">;</span>
</pre>
<pre>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">head</span><span class="operator">(</span><span class="variable">$url</span><span class="operator">))</span> <span class="operator">{</span>
     <span class="comment"># ok document exists</span>
  <span class="operator">}</span>
</pre>
<p>The <code>head()</code> function really returns a list of meta-information about
the document.  The first three values of the list returned are the

⌨️ 快捷键说明

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