C#でHTTP応答から画像を取得しようとしていますが、画像の代わりに、それらのリダイレクトの1つです。関連するコードは次のとおりです。
String url = "my image URL that's actually a redirect URL"
Image img = null;
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
using (Stream str = response.GetResponseStream())
{
img = Image.FromStream(str);
}
}
しかし、それは私が応答を通して求めることができないと私に言い続けます。応答ストリームをbyte[]に保存してから印刷したところ、応答ストリームは実際には画像自体ではなくリダイレクトページのものであり、ブラウザーはJavascriptを介してそれを処理していることがわかりました。
最初のリクエストへの応答として実際に送信されなかった場合、この画像をキャプチャするにはどうすればよいですか?ブラウザの後続のリクエストを監視する方法がわかりません。また、リダイレクト先の画像URLにストリームをポイントしても、同じ問題が発生し、同じリダイレクトページのHTMLが出力されます。
編集:これは(画像の代わりに)読み込まれているJavascriptページです(標準的なものもありますが、これはページ上の唯一のスクリプトです):
<script>
var escapedHash = '';
var url = 'https://login.salesforce.com/?ec=302&startURL=%2Fcontent%2Fsession%3Furl%3Dhttps%253A%252F%252Fc.na9.content.force.com%252Fprofilephoto%252F005%252FF';
if (window.location.hash) {
escapedHash = '%23' + window.location.hash.slice(1);
}
if (window.location.replace){
window.location.replace(url + escapedHash);
} else {;
window.location.href = url + escapedHash;
}
</script>