3

サーバーで自分自身を認証し、サーバーから新しいデータを取得することをループするスクリプトを開発しようとしています。

ベローは私が使用しているコードです

Set s = CreateObject("MSXML2.XMLHTTP")

'Server authentication
s.open "GET", "fooAPI", False
s.send

do

    'Server data
    s.open "GET", "barAPI", False
    s.send
    Wscript.echo s.responseText
    WScript.Sleep 5000
loop

初めて実行すると最新の情報が得られますが、ループすると最初の実行と同じ情報が得られます

私が見つけた最も近いものはこれでしたが、未回答のままでした。

これをすべてPythonで行うことを計画していましたが、Pythonをインストールすることは「セキュリティリスク」であるため、リクエストを拒否されました。

アドバイスをいただければ幸いです

4

2 に答える 2

3

これは、応答がキャッシュされているためです。毎回新しいコピーを取得するように IE の設定を変更するか、IE をだまして別の「ページ」であると思わせるために使用されていないランダムなパラメーターを送信します。サーバーを制御する場合は、HTTP ヘッダーを設定して、クライアントが (標準に準拠している場合) 常にコンテンツをフェッチするように強制できます。こちらの詳細情報も参照してください: VBScript: サーバーから HTTP GET URL 要求への応答のキャッシュを無効にする

(この情報のほとんどが Sandeep のリンクであることは知っています。ただし、ここにある方が適切であり、それが消える可能性があります。)

于 2014-01-21T05:07:17.743 に答える
0

たぶん、これは応答をリセットするのに役立ちます:

Set s = CreateObject("MSXML2.XMLHTTP")
'Server authentication
s.open "GET", "fooAPI", False
s.send
do
    'Server data
    s.open "GET", "barAPI", False
    s.send
    Wscript.echo s.responseText
    WScript.Sleep 5000
    set s = nothing
loop
于 2016-06-15T07:00:46.833 に答える