1

さて、これが私がしていることです。サーバーにファイルをプルダウンするように要求しています。これを行うには、WebサイトにWebRequestを作成して、通常どおりに応答を取得しますが、アクセス許可がないという403エラーが発生します。

問題は、URLをGoogle Chromeに接続するとリダイレクトされ、要求したファイルがダウンすることです。他のブラウザでURLを試しましたが、403エラーが発生しました。

403エラーを回避できるようにするGoogleChromeは何をしていますか?Google Chromeユーザーエージェントを使用してみましたが、役に立ちません。

ヘルプ

4

3 に答える 3

1

おそらく、ウェブサーバーはChromeユーザーエージェントを認識し、ファイルのダウンロードを許可しますが、他のユーザーエージェントは許可しません。Google Chromeと同じユーザーエージェント文字列と設定を使用するようにWebRequestを設定します。デフォルトでは、IE設定を使用している可能性があります。

編集:WebRequestユーザーエージェント文字列を設定する方法についてのMSDNからの指示は次のとおりです。ブラウザのユーザーエージェントを見つけるには、アドレスバーに次のように入力します。

javascript:prompt('my user agent string is', navigator.userAgent);
于 2009-10-22T22:59:06.840 に答える
1

403ステータスコードは、到達しようとしているリソースが禁止されていることを示しています。のように、あなたはそれを取得していないので尋ねないでください。これは、サーバーがリソースの配信を確認する前に承認チャレンジが提示されるという点で、401コードとは異なります。

これはプログラムによる構成である可能性がありますが、Webサーバーを介して構成されたリソースへのアクセス制限によって説明される場合もあります。

Google Chromeにダウンロードされたリソースが、到達しようとしている予想されるリソースであることを確認できますか?

于 2009-10-22T23:29:22.500 に答える
1

助けてくれてありがとう。あなたの答えはどれも私を直接助けてくれませんでしたが、試してくれてありがとう。

私のプログラムはサーバーからファイルをプルしようとしていました。Chromeを使用しているときに、認証の問題を回避し、サーバー上でファイルを見つける方法を理解していました。彼らのWebサービスは、ユーザーセッションを使用してより高度になっていることがわかりました。

基本的に、私はWebサービスコマンドにアクセスできなかったので、私にできることは、基本的なhttpURLを使用して事前定義された応答を取得することだけです。サーバーのファイルを取得するために使用したファイルのURLは一意ではなく、Webブラウザー/セッションに応じて動的でした。HTTPRequestオブジェクトを使用してHTMLファイルを取得し、解析できるようにしました。htmlファイルを使用して、ファイルの動的IDを見つけるためにそれを解析しました(私はそれが一意であると思いました)。次に、それをURLの最後に添付します。Chromeでは、リダイレクトされてダウンロードプロンプトが表示されます。問題は、ファイルをプルダウンしたいときにwebbrowserオブジェクトが必要だったことです。これを知って、私はwebbrowserオブジェクトを使用してファイルIDを取得し、次に同じwebbrowserオブジェクト(Webサーバーによると技術的に同じセッション)を使用してファイルをプルダウンしました。

かなり複雑です。基本的に、私のプログラムは、サーバーがtryblockである機能を提供する小さなハックです。

これがあなたの将来のプロジェクトのいずれかであなたたちを助けたことを願っています。

于 2009-10-30T02:07:33.430 に答える