我正在尝试从 C# 中的 HTTP 响应中获取图像,但它不是图像,而是这些重定向之一。以下是相关代码:
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>