2012-01-18 4 views
0

時には私は救い出せるように掻き取れないイメージを見つけることがあります。この例は次のとおりです。拡張子のない画像をどのように削り取ることができますか?

https://s3.amazonaws.com/plumdistrict.com-production/perks/12321/image/original.?1325898487

私は、Internet ExplorerからのURLを打つとき、私は画像を参照してください私は、コードからそれを取得しようとするとき、私は次のエラーメッセージ「System.Net.WebExceptionを取得下回ります(403)のGetResponseで「エラー禁止:この画像を取得する方法について

string url = "https://s3.amazonaws.com/plumdistrict.com-production/perks/12321/image/original.?1325898487"; 
WebRequest request = WebRequest.Create(url); 
WebResponse response = request.GetResponse(); 

任意のアイデアリモートサーバーがエラーを返しましたか?

編集:

拡張子を持つ画像を保存することができます。例えば、私はちょうど罰金以下の画像をこすりすることができます:それは(おそらくデータベースから取得された)スクリプトから生成されているよう

https://s3.amazonaws.com/plumdistrict.com-production/perks/12659/image/original.jpg?1326828951

答えて

0

をまあ、それが見えます。サーバと一緒にファイル/コンテンツタイプを送信する必要があります...しかし、そうではないようですが、これは標準の違反と信じています。

私のLinuxボックスは、拡張機能に頼るのではなく、ファイルヘッダーを調べるため、ハードドライブ上に置かれたJPEG画像です。おそらく、Windowsで同じことをするツールがありますか?

編集:実際には、さらに検討すると、それはとなります。おそらく、サーバーは実際にあなたがその方法でファイルを取得するのを妨げているでしょう。

1

HTTPは当初はステートレスであるはずですが、ステートレスであることに依存する実装がたくさんあります。あなたがログインしていることを証明するクッキーを提供している場合は、私のウェブサーバが「http://mydomain.com/sexy_avatar.jpg」のリクエストを受け入れるように設定することができます。そうでなければ、http:// mydomain .com/avatar_for_public_use.jpg "

アマゾンは同じことをしている可能性があります。 Chromeを使用してウェブページを読み込み、デベロッパーモードでネットワークビュー(CTRL + SHIFT + J)を見て、ウェブサイトに提供されたすべてのヘッダーを確認します。画像を見ることが許される前に、同じセッションで完全なナビゲーションを行う必要があるかもしれません。これは私が開発した多くのWebアプリケーションで確かにそうです:-)

+0

+1貴重な回答 – mKorbel

+0

あなたを正しく理解しているかどうかを見てみましょう。私は、アマゾンが私にそれをいくつかのセッション状態、例えばクッキーを渡す必要があるかもしれないと言っていると思います、しかし、私はIEを通してログインしないでこのイメージを得ることができます。 –

+0

あなたの理論を検証するために、私は先に進み、ログインしたセッションでプログラムを使用してイメージのリクエストを作成しましたが、まだこのイメージを取得できませんでした。私はまだ403エラーを取得します。メンバー専用のページにアクセスできるので、セッションの状態が正しいことを知っています。さらに、私はこの画像以外のすべての画像にアクセスして保存することができます。これがエクステンションを持たないことが理由である可能性があるなら、私はまだ不思議です。 –

関連する問題