perlでHTTP DELETE methodでリクエストしたいときのサンプル

perlでHTTP DELETE methodでリクエストしたいシチュエーションに
遭遇したので、サンプルコードと動作確認環境をさらしてみます。

サンプルは以下
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

use HTTP::Request;
use LWP::UserAgent;

# 動作確認環境 on google app engine
my $url = 'http://tanargle.appspot.com/rest_test';
my $ua = new LWP::UserAgent;
# DELETE を指定する
my $request = new HTTP::Request(DELETE => $url);

# -----------------------------------------------------
# google app engineの本番Webサーバは、DELETE method
# contentを指定すると、400 bad requestを返
# SDKの場合はエラーにならない
# ----------------------------------------------------
#my $body = 'foo=bar&hoge=fuga';
#$request->content($body);
my $response = $ua->request($request);
print $response->content();
http://tanargle.appspot.com/rest_testは
Google App Engine上の動作確認用環境です。
ご自由に利用してもらってかまいませんが、
予告無しで環境を落とすかもしれないのでご了承ください。

で、実行すると、
$ perl delete.pl
DELETE Methodを受け付けました
うまくいくと↑のようなメッセージが返ってきます。

コメントで書いた通り、DELETE methodでcontent bodyを指定すると
Google App Engineの本番環境だと、400 bad requestが返ってくるので
注意です。SDKだと普通に処理を実行してくれるので、本番に上げたときに
エラーになって、若干はまりました。

googleに報告してみようかな。

人気の投稿