2025-02-10T05:29:29
This commit is contained in:
131
docs/27_http.md
Normal file
131
docs/27_http.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# Http Client
|
||||
|
||||
```perl
|
||||
#!/usr/bin/perl
|
||||
use warnings;
|
||||
use strict;
|
||||
|
||||
use URI::URL;
|
||||
use HTTP::Headers;
|
||||
use HTTP::Request;
|
||||
use LWP::UserAgent;
|
||||
|
||||
my $url = new URI::URL('https://www.example.com');
|
||||
my $headers = new HTTP::Headers(
|
||||
'Accept' => 'text/html',
|
||||
'User-Agent' => 'Elex/1.0'
|
||||
);
|
||||
my $request = new HTTP::Request('GET', $url, $headers);
|
||||
my $user_agent = new LWP::UserAgent;
|
||||
|
||||
my $response = $user_agent->request($request);
|
||||
if ($response->is_success) {
|
||||
print $response->content;
|
||||
} else {
|
||||
print $response->message;
|
||||
}
|
||||
```
|
||||
|
||||
## LWP::UserAgent
|
||||
|
||||
```perl
|
||||
my $user_agent = new LWP::UserAgent;
|
||||
```
|
||||
|
||||
- request
|
||||
|
||||
- credentials
|
||||
|
||||
- get_basic_credentials
|
||||
|
||||
- timeout
|
||||
|
||||
|
||||
## HTTP::Request
|
||||
|
||||
```perl
|
||||
my $request = new HTTP::Request($method, $url, $headers, $content);
|
||||
```
|
||||
|
||||
- method : GET, POST 등
|
||||
|
||||
- url : 문자열 또는 `URI::URL` 객체
|
||||
|
||||
- headers : `HTTP::Headers` 객체
|
||||
|
||||
- content : 요청 바디
|
||||
|
||||
|
||||
## HTTP::Response
|
||||
|
||||
```perl
|
||||
my $response = $user_agent->request($request);
|
||||
```
|
||||
|
||||
서버 측에서 응답을 생성하려는 경우에는
|
||||
|
||||
```perl
|
||||
my $response = HTTP::Response->new($status_code, $msg, $header, $content);
|
||||
```
|
||||
|
||||
- code
|
||||
|
||||
- message
|
||||
|
||||
- is_success
|
||||
|
||||
|
||||
## HTTP::Headers
|
||||
|
||||
```perl
|
||||
my $headers = new HTTP::Headers(
|
||||
'name' => 'value', ...
|
||||
);
|
||||
```
|
||||
|
||||
- push_header
|
||||
|
||||
- remove_header
|
||||
|
||||
|
||||
## HTTP::Status
|
||||
|
||||
- is_info
|
||||
|
||||
- is_success
|
||||
|
||||
- is_redirect
|
||||
|
||||
- is_client_error
|
||||
|
||||
- is_server_error
|
||||
|
||||
- is_error
|
||||
|
||||
|
||||
## URI::URL
|
||||
|
||||
```perl
|
||||
my $url = new URI::URL($url);
|
||||
```
|
||||
|
||||
- scheme
|
||||
|
||||
- host
|
||||
|
||||
- port
|
||||
|
||||
- path
|
||||
|
||||
- query
|
||||
|
||||
- user
|
||||
|
||||
- password
|
||||
|
||||
|
||||
## URI::Escape
|
||||
|
||||
- uri_escape
|
||||
|
||||
- uri_unescape
|
||||
Reference in New Issue
Block a user