人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl についての質問です。あるサイトを参考に以下のソースを組みましたがうまくいきません。

# リクエストの生成
my $url = "http://www.test.com/index.php";

my $host = "$url";
my $port = "80";
my $jsessionid = "lwpcookies.txt";

my $ua = new LWP::UserAgent;
my $req = new HTTP::Request POST => "$url";
$req->content_type('application/x-www-form-urlencoded');
$req->content("name=ほんげら&comment=クックロビン");

my $cookie_jar = HTTP::Cookies->new;
$cookie_jar->set_cookie(undef, "JSESSIONID", $jsessionid, "/", $host, $port);
$ua->cookie_jar($cookie_jar);

my $res = $ua->request($req);

if ($res->is_success) {

print "SUCCESS\n";
my $http = $res->content;

print "\n${http}\n";

} else {

print "FAILED\n";

}

クッキーと一緒にPOSTで投げるプログラムなのですが、どこがおかしいか指摘していただけないでしょうか?useの宣言はきちんとしてあります。

●質問者: zachouR
●カテゴリ:インターネット ウェブ制作
✍キーワード:application HTTP name Perl print
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tkyk3
●60ポイント

とりあえず、こんな風に書き換えてみました。

#! /usr/bin/perl

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser croak);
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Cookies;

my $q = new CGI;

my $url = 'http://www.test.com/index.php';
my $port = 80;
my $jsessionid = 'lwpcookies.txt';

my $ua = new LWP::UserAgent;
my $req = HTTP::Request->new( POST => $url );
$req->content_type('application/x-www-form-urlencoded');
$req->content('name=ほんげら&comment=クックロビン');

my $cookie_jar = HTTP::Cookies->new;
$cookie_jar->set_cookie(undef, 'JSESSIONID', $jsessionid, '/', $url, $port);
$ua->cookie_jar($cookie_jar);

my $res = $ua->request($req);

print $q->header('-Content-Type' => 'text/html',
 '-charset' => 'UTF-8',
);

if ($res->is_success) {

print "SUCCESS\n";
my $http = $res->content;

print "\n$http\n";

} else {

print "FAILED\n";

}

CGIとしてブラウザ上で実行すると仮定してですが、意図したメッセージが表示されるようにするには、HTTPヘッダを付加してやる必要があるので、

use CGI;
my $q = new CGI;
print $q->header('-Content-Type' => 'text/html',
 '-charset' => 'UTF-8',
);

を追加してみました。(UTF8の場合。Shift-JISでしたら、このあたりも変えないと)

あと、

print "\n${http}\n";

print "\n$http\n";

かなと思うのですが如何でしょうか。

ただ、上のソースは文法チェックのみなので、実際にうまくいくかどうかは別問題です…また状況が分かれば投稿したいと思います。


http://hatena.ne.jp

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ