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

perlのスクリプトでHTTP::Requestを用いGETでHTTPヘッダつき画像データを取得したのですが、ヘッダをきれいに除去する方法が思いつきません。肝心のデータ部に影響を与えることなくHTTPヘッダの部分を切り取るperlスクリプトはどのように書けばよいでしょうか?

●質問者: ka0007
●カテゴリ:ウェブ制作
✍キーワード:HTTP Perl スクリプト データ 画像
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● mi-si
●23ポイント

ヘッダと本体の切れ目は¥n¥nなのでここでsplitすれば問題ないのでは?

下は家で使っているHTTPチェック用スクリプトの一部ですけど。(うまく書き込めるかな?)

print S ”GET $URL HTTP/1.0¥n¥n”;

$line = <S>;

$line =~ s/¥r|¥n|¥r¥n|¥n¥r//g;

($var,$code,$mes)=split(/ /,$line,3);

print ”HTTP:$var¥n”;

print ”CODE:$code¥n”;

print ”Get File Success¥n” if $code==200;

print ”MES :$mes¥n”;

while(<S>) { /* Headerの表示 */

s/¥r|¥n|¥r¥n|¥n¥r//g;

last if($_ eq ’’);

print ”$_¥n”;

}

print ”---------------------------------¥n”;

while(<S>) {

print ;/* 本体 */

}

◎質問者からの返答

ありがとうございます。


2 ● aki73ix
●23ポイント

http://nifberry.727.net/

私が作って使ってる奴の本体を取り出す部分です

この前はソケット文です

print S ”GET ”,$file,” HTTP/1.0¥r¥nhost:”,$host,”¥r¥n¥r¥n”;

@que = <S>;

close(S);

$TT=0;

foreach $ax (@que){

if($TT eq 0){

if( $ax gt ’ ’){

if(index($ax,”Content-”) gt -1){

print $ax;

# print qq(¥r);

}

$TT=0;

}

else{

print qq(¥n);

$TT=1;

}

}

else{

print $ax;

}

}

◎質問者からの返答

ありがとうございます。


3 ● andymente
●24ポイント

require HTTP::Request;

require LWP::UserAgent;

$url = ’

http://....xxx.gif

’;

# 取得

$ua = LWP::UserAgent->new;

$request = HTTP::Request->new(GET => $url);

$response = $ua->request($request);

$buf = $response->content;

# 表示

binmode STDIN;

print ”Content-type: image/gif;¥n¥n”;

print $buf;

exit;

--

単に Web から取ってきた画像から本体だけ簡単に取り出すなら、これが楽だと思います。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



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