调用跨域 URL 时,HttpWebRequest 响应始终为 text/html



我正在使用HttpWebRequest从跨域(https://www.facebook.com/plugins/post/oembed.json/?url=posturl(获取json结果。我已经将ContentType和Accept设置为application/json,但我总是得到文本/html响应。预期结果为 JSON。

string result = string.Empty;
var request = (HttpWebRequest)WebRequest.Create("https://www.facebook.com/plugins/post/oembed.json/?url=xxxxxx");
request.ContentType = "application/json; charset=utf-8";
request.Accept = "application/json";
request.Method = "POST";                
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}

我认为您还需要在请求中设置浏览器代理以获得预期的结果,而不是来自Facebook的嵌入式HTML。

像这样:

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";

相关内容

最新更新