プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > FileDownload > Macro > Ex: Command > Proxy

 
 Ex:Http-Getコマンド、Ex:Http-Postコマンドでのプロキシ指定
Download Top | Macro Top | Command | ExCommand  


 

概要



Proxy設定画面 (テキストフォーム > 環境設定)

  Ex:Http-Getコマンド、 Ex:Http-Postコマンド でサーバーにアクセスする場合、 テキストフォーム環境設定面 (テキストフォーム右下の、  環境設定 ボタン を押して開く画面) で プロキシ設定を行っていた場合は、 そのプロキシを使用したアクセスになります。

設定場所は、AntiLink設定の囲みエリア内になります (左図参照)。

ただし、 「プロセルピナ」 version1.05 以降で追加された Ex:Http-Getコマンド、Ex:Http-Postコマンド のパラメータにより、 コマンドで使用するプロキシを それに優先して指定することが可能です。
追加されているのは、 proxy= と、 preResolve= のパラメータです。
proxy= にはファイル名で、 preResolve= には true または false で指定します。

【参考】 Ex:Http-Getコマンド
【参考】 Ex:Http-Postコマンド

 

proxy= の指定


proxy=(filename)  

プロキシの設定ファイルをフルパスで指定します。
ファイルは普通のテキストファイルで、内容は次のようなものになります (文字列がUTF-8エンコードの場合)。



ファイルの先頭行は、エンコード指定行でなければなりません (省略できません)。

useProxy に false を指定した場合、プロキシサーバを使用しないアクセスになります。
プロキシサーバは proxy.http.servproxy.http.port で指定します。
httpsのプロキシサーバは、 proxy.https.servproxy.https.port で指定します。 上記のように指定を省略した場合は httpのときと同じサーバを指定したことになります。 httpsに限ってプロキシサーバを経由させない場合は、
  proxy.https.serv: *
と、 * 記号 で指定します。


プロキシの設定ファイルは、予めテキストエディタなどで作成しておくか、 ダウンロードマクロ実行時にワークディレクトリなどに動的に作成して、 それを指定します。


gosubで呼び出す例 (str["px"]にフルパスで設定される)


プロキシを使用する場合(useProxy が true)、 Http-Get、Http-Postヘッダのリクエストライン(ヘッダ先頭行)に指定されるURIは、 絶対パス(アブソリュートURI) になります。
これを、 header.requestLine.absoluteURI を指定することで、相対パスに変更することができます。



逆に、プロキシを使用しない場合(useProxy が false)でも、 次のような1行を入れることで、 リクエストURIを絶対パスにすることができます。
  header.requestLine.absoluteURI: true
一般的な使用では header.requestLine.absoluteURI を特に指定する必要はありません。

 

preResolve= の指定


preResolve=(yes_or_no)  

プロキシサーバが、Hostヘッダに記述されたホスト名をDNSリゾルブできない場合などに yes を指定します。

たとえば、 http://www.example.com/dir/index.html のURLにアクセスする場合、 プロキシ経由のアクセスの場合では、 プロキシサーバが www.example.com のサーバを 探す(DNSリゾルブ)ことができなければなりませんが、 これができないプロキシサーバもあります。
その場合、 www.example.com のサーバアドレスの部分を 予め具体的なIPアドレスに変換しておかなければ 正常にアクセスできません。

  × http://www.example.com/dir/index.html
  http://000.000.000.000/dir/index.html

これは、プロキシサーバが www.example.com をDNSリゾルブできないことを意味します。
このようなプロキシサーバの場合は、 preResolveパラメータに yes を設定してください (preResolveパラメータ指定省略時は no です)。
(* yes, no の代わりに true, false の指定でもかまいません)

【詳細内容】
具体的には、 preResolve=yes の場合、 Http-Get、Http-Postで送信するHostヘッダには、 ホスト名ではなくIPアドレスで記述されます。
また、Http-Get、Http-Postのリクエストライン(ヘッダ先頭行)のURI部がアブソリュートURIで指定される場合、 ホスト名の部分がIPアドレスになります。
サーバからの応答でCookieが送信されてきた場合、 ダウンロードマクロはこれを、IPアドレスに変換する前のホスト名で関連付けて、記録・管理します。
たとえば、preResolve値を変えて2つのURLに連続してアクセスする場合、
  1. http://www.example.com/dir/index.html ← preResolve=no
  2. http://www.example.com/dir/images/hoge.jpg ← preResolve=yes
2.のアクセスで preResolve=yes を指定しても、 1.の応答で得られたCookieを付与して送信されます。

 

記述例




[BACK]
プロセルピナ