質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Q&A

解決済

1回答

5318閲覧

perlでresponseの結果を取得する方法

tester_04212

総合スコア11

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

0グッド

0クリップ

投稿2017/04/21 16:35

perlでresponseのPOSTの結果を取得するコードを教えて頂きたく。
レスポスンスはpostで任意のパラメータがくる想定です。

リクエストを作成

my $req = new HTTP::Request GET => 'http://localhost/index.html';
$req->content_type('application/x-www-form-urlencoded');
$req->content('match=www&errors=0');

ユーザ・エージェントにリクエストを渡し、返されたレスポンスを取得

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

レスポンスの結果

print $res->content;

--この続きをご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

レスポンスの形式によって処理は変わってきます。

質問では「http://localhost/index.html」にアクセスしており、HTMLを取得しているだけなので、結果を表示するだけなら「print $res->content」でも問題ないと思います。
もしもスクレイピングのようなことをやりたければ、HTTPモジュールではなくスクレイピング用のモジュールを使用したほうがよいと思います。
Web::Scraper

もし、WEB APIの場合、結果はJSONまたはXMLで返却されると思いますので、各種パーサーを用いて、処してください。
1)JSON
参考
2)XML
参考

投稿2017/04/22 00:54

scrpgil

総合スコア109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tester_04212

2017/04/22 01:10

回答ありがとうございます。各種パーサーのJSON、XML、が使えない環境です。インストールすれば早いのですが、容易にできません。 GETで叩いてWeb API の返り値を POST で受け取って Perl で処理を想定しております。
scrpgil

2017/04/22 01:40 編集

各種パーサーが使えない状況となると組み込み系かなんかでしょうか。パーサー(というかモジュール)のインストールは以下の2通りがあります。 1)cpanコマンドでインストールする cpanが使える環境なら以下のコマンドで各モジュールを入手できます。cpanはperlが使えるなら大抵使えると思います。ためしにコンソールでcpanとうってみてください。 cpan モジュール名 2)cpanサイトからモジュールをダウンロードして読み込み cpanのサイトに行き直接モジュールをダウンロードしてください。 [XML::Simple](http://search.cpan.org/~grantm/XML-Simple-2.24/lib/XML/Simple.pm) 上のリンクの右側にDownloadってリンクがあると思いますのでそれを「use XML::Simple」なりで読み込んで使う。
tester_04212

2017/04/22 01:49

回答ありがとうございます。 モジュールあることインストール手順等は知っていました。説明不足で申し訳ありません。インストール以外で模索している感じです。 インストール以外に方法はなさそうですかね。。。
scrpgil

2017/04/22 01:53 編集

そうでしたか・・・。インストール以外となると自作というのが思いつきます。 以下にperlでjsonパーサーを自作するというブログがあったので参考になるかと・・・ http://adiary.blog.abk.nu/0295 XMLはちょっと見当たりませんでした・・・
tester_04212

2017/04/22 02:23

情報ありがとうございます。試してみます。
tester_04212

2017/04/22 07:53

難しそうですね。。。 ちなみにレスポンス返却先がこちらの形式だとどのように受け取れば良いのでしょうか? application/x-www-form-urlencoded クエリはこのように来ます。 key1=value2&key2=value2 以下サンプルコードです。これで取得できますでしょうか? require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->env_proxy; my $response = $ua->get('http://search.cpan.org/'); $response にこれでkey1=value2&key2=value2が格納されていますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問