document

ブラウザでのテストだけでなくて、非multipartでもPOSTのテストができるようにperlでテストプログラムを書いた。

capn から必要なモジュールのインストール

cpan>install LWP::UserAgent

POST multipart

URL指定して、アップロードしたいファイルの場所を指定するだけで送れる。 とても便利!

	use strict;
	use LWP::UserAgent;
	use HTTP::Request::Common;
	
	# POST準備
	my $currentUTC = time;
	my $url = 'http://localhost:8080/upload?key=' . $currentUTC . '&abc=xxxxx';
	
	my $request = POST( $url, Content_Type => 'form-data',Content => [input_type_file_name => ["/tmp/3MB.JPG"]] );
	
	print $request;
	
	# 送信
	my $ua = LWP::UserAgent -> new;
	my $res = $ua -> request( $request ) -> as_string;
	print $res;

POST 非multipart

非multipartで送るほうが最近は面倒だんだよねー

指定の違いはContent_Typeか"Content-Type"

multipartはPOST( $url, Content_Type => 'form-data'
非multipartはPOST( $url, "Content-Type" => 'image/jpeg'
	use strict;
	use LWP::UserAgent;
	use HTTP::Request::Common;
	
	my $currentUTC = time;
	my $url = 'http://localhost:8080/upload?key=' . $currentUTC . '&abc=xxxxx';
	
	my $file = "/tmp/3MB.JPG";
	my $bin;
	open(FH, '<' . $file);
	binmode(FH);
	read(FH, $bin, -s $file);
	my $request = POST( $url, "Content-Type" => 'image/jpeg',Content => $bin); close(FH);
	
	print $request;
	
	my $ua = LWP::UserAgent -> new;
	my $res = $ua -> request( $request ) -> as_string;
	print $res;

get

	use strict;
	use LWP::UserAgent;
	use HTTP::Request::Common;
	
	# get準備
	my $url = 'http://www.google.co.jp/search?q=sony';
	
	# 送信
	my $ua = LWP::UserAgent -> new;
	my $res = $ua -> request(GET  $url ) -> as_string;
	print $res;

参考文献

PerlでPOSTメソッドの送信を行う | ぺんラボ http://www.penlabo.net/archives/409

やり方を知った。ありがたい。

HTTP::Request::Common - search.cpan.org http://search.cpan.org/~gaas/HTTP-Message-6.02/lib/HTTP/Request/Common.pm

本家の解説

HTTP::Request::Common - 汎用のHTTP::Request オブジェクトの組み立て http://homepage3.nifty.com/hippo2000/perltips/HTTP/Request/Common.html

それの和訳

Perlモジュール/LWP - Walrus, Digit. http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FLWP

LWP::UserAgent?で基本認証とPOSTを - 徒書 http://www.akatsukinishisu.net/itazuragaki/perl/basic_auth_post_by_lwp_useragent.html

iandeth. - 一般ユーザ環境におけるCPANモジュールの使い方 http://iandeth.dyndns.org/mt/ian/archives/000623.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-09 (火) 09:23:52 (2815d)