我正在使用HttpResponse类的BinaryWrite方法来获取网页。
类似于示例...
FileStream MyFileStream;
long FileSize;
MyFileStream = new FileStream("APage.html", FileMode.Open);
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.BinaryWrite(Buffer);
然后我使用jQuery ajax方法来获取响应。但是我无法用它做任何事 - 所以如果我有......
$.ajax({
type: "GET",
url: "GetUrl.Proxy",
data: { url: 'http://www.example.org/test.html' },
success: function(data) {
$('iframe').contents().find('html body').html(data.toString());
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
这会返回一个二进制字符流,我想要的是jQuery可以用来设置html元素的东西。
答案 0 :(得分:2)
首先设置内容类型:
Response.Clear();
Response.ContentType = "text/html";
...
回答查找文件内容类型的问题:
string mt = "application/unknown";
string ext = Path.GetExtension(filename).ToLower();
var regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (regKey != null) {
var tempMt = regKey.GetValue("Content Type");
if (tempMt != null) {
tempMt = regKey.GetValue("Content Type").ToString();
}
}
就个人而言,我可能只是用可能的扩展和类型做一个switch语句......