忍者ブログ
プログラム実験・備忘録
[39] [38] [37] [36] [28] [35] [34] [33] [32] [31] [30]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

lwp-request + proxy + SSL
こんな組合せが必要なケースってそうそうないか。。。
やってみると出来なくてわからなくなる。

+ + + + + + + + + +
環境にもよるかもしれないが、
LWP::UserAgent とか Crypt::SSLeay  はインストール済みで利用可能とする。
「Protocol scheme '' is not supported」 なんて出ちゃう場合は、Crypt::SSLeayが使えてないんだと思う。
cpanか何かで取得したほうがいい、んだそうだ。。。今回はインストール済みの環境だった。

はまりどころは
LWP::UserAgent と Crypt::SSLeay と両方ともPROXYサポートがあるけど、
・双方の指定方法が異なること
・双方を同時に指定しないほうがいいらしいこと
なんてのがあるみたいで混乱する。

lwp-request コマンドでは以下のような記述になってる。
つまり、-p オプションでPROXYを指定する。
$ua->proxy($url->scheme, $options{'p'}) if $options{'p'};
この指定のまま、ターゲットURLが "https://~ " だったりすると動作しない。

一方、lwp-requestを使うと意識せずに連結してくれている Crypt::SSLeay でのProxy指定は、
単純に環境変数 HTTPS_PROXY にPROXYをセットしておくらしい。
perl内で指定するとしたら、以下。
$ENV{HTTPS_PROXY} = "プロクシURL"
ってことは、lwp-request + proxy + SSL としたい場合は、
あらかじめ、環境変数HTTPS_PROXY にPROXYをセットした上で、
lwp-requestの-pオプションは使わず、
ターゲットURL "https://~" へアクセスすればいいってことかな
ターゲットURLが普通の http だったら、Crypt::SSLeay じゃないはずだし、これでいけるかな。

あるいは、lwp-request のpオプションの値を解釈させている部分を
以下のように書き換えちゃうか。
$ENV{HTTPS_PROXY} = $options{'p'} if $options{'p'};
あ、、、これじゃターゲットURLがHTTPだと動かないか・・・
環境変数にセットするやり方だと、何か見えにくくなっちゃうかなって思う。
-pオプションでプロクシを任意に指定することになるから、lwp-request に慣れてる場合はわかりやすい。
ただ、見えにくくて困ることもないし、実行環境の依存と考えれば、環境変数へセットのほうがわかりやすいのかな。。。
PR
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
広告
プロフィール
negao (38歳  男性)
土木工学卒でなぜかSEやってます。
最近、残業代も出なくなってツライな・・・
ブログ内検索
カウンター
アクセス解析
[39] [38] [37] [36] [28] [35] [34] [33] [32] [31] [30]
Powered by ニンジャブログ  Designed by ゆきぱんだ
Copyright © するのは失敗、何もしないのは、、、 All Rights Reserved
忍者ブログ / [PR]