本文介绍了Facebook Oembed使用UserAgent和Referrer返回HttpRequestMessage的不受支持的浏览器页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从ASP.Net Core MVC应用程序中,我尝试使用本地计算机上的服务器端请求从Facebook提取OEmbed JSON,但仍得到不支持的浏览器页面.我还需要通过什么?

From my ASP.Net Core MVC app, I am trying to fetch OEmbed JSON from Facebook using server-side request from my local machine, but I'm still getting an unsupported browser page. What else do I need to pass?

oEmbedUrl是""> https://www.facebook.com/plugins/post/oembed.json/?url = "+帖子网址.

oEmbedUrl is "https://www.facebook.com/plugins/post/oembed.json/?url=" + a post URL.

            var request = new HttpRequestMessage(HttpMethod.Get, oEmbedUrl);
            request.Headers.AcceptLanguage.TryParseAdd("en");
            request.Headers.UserAgent.TryParseAdd("Mozilla / 5.0(Windows; U; WindowsNT 5.1; en - US; rv1.8.1.6) Gecko / 20070725 Firefox / 2.0.0.6");
            request.Headers.Referrer = new Uri("http://www.google.com");
            request.Headers.TransferEncoding.TryParseAdd("gzip");
            request.Headers.TransferEncoding.TryParseAdd("deflate");

            var client = _clientFactory.CreateClient();

            var response = await client.SendAsync(request);

            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }

推荐答案

我做了一个简单的测试,它似乎可以工作.确保帖子是公开的,并且所有参数都经过URL编码.

I did a simple test and it seems to work. Make sure the post is public and all parameters are URL encoded.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://www.facebook.com/plugins/video/oembed.json/?url=https%3A%2F%2Fwww.facebook.com%2Ffacebook%2Fvideos%2F10153231379946729%2F");
        request.UserAgent = "Mozilla / 5.0(Windows; U; WindowsNT 5.1; en - US; rv1.8.1.6) Gecko / 20070725 Firefox / 2.0.0.6";
        request.Referer = "http://www.google.com";
        request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        using (Stream stream = response.GetResponseStream())
        using (StreamReader reader = new StreamReader(stream))
        {
            string json = reader.ReadToEnd();

        }

这篇关于Facebook Oembed使用UserAgent和Referrer返回HttpRequestMessage的不受支持的浏览器页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 23:15