c#从url获取JSON文件

时间:2017-12-22 10:38:31

标签: c# json

有几天我试图找到一种方法来获取this URL到JSON文件。

当您访问上面的网址时,您会看到一个包含产品的网页。此页面将this URL加载到包含其中所有产品信息的JSON文件中。

我想在我的C#程序中输入第一个URL时获取此文件,以便我可以提取数据,但我不知道如何访问此文件。

这是我走了多远:

    static void Main(string[] args)
    {
        GetRequest("https://www.ah.nl/producten/product/wi224735");
        Console.ReadKey();
    }



    async static void GetRequest(string url)
    {
        using (HttpClient client = new HttpClient())
        {
            using (HttpResponseMessage response = await client.GetAsync(url))
            {
                using (HttpContent content = response.Content)
                {
                    string mycontent = await content.ReadAsStringAsync();
                    //HttpContentHeaders headers = content.Headers;
                    Console.WriteLine(mycontent);
                }
            }
        }
    }

但是这个控制台应用程序会读取标题或HTML而不是JSON文件。

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

试试这个

string responseString = string.Empty;
using (var webClient = new WebClient())
{
    responseString = webClient.DownloadString("https://www.ah.nl/service/rest/delegate?url=%2Fproducten%2Fproduct%2Fwi224735%2Fdoritos-nacho-cheese&_=1513938720642");
}

答案 1 :(得分:1)

这样的事情对你有用:

//initial URL
var urlStr = @"https://www.ah.nl/producten/product/wi224735/doritos-nacho-cheese";
//The endpoint to get JSON
var delegateEndpoint = @"https://www.ah.nl/service/rest/delegate";

var urlParam = new Uri(urlStr).PathAndQuery;

var address =
    $"{delegateEndpoint}?url={Uri.EscapeDataString(urlParam)}";
string json;
using (WebClient client = new WebClient())
{
    json = client.DownloadString(address).Dump();
}

答案 2 :(得分:1)

(B)URL包含最后一个参数。您可以从Cookie中获取最后一个参数:http://prntscr.com/hqxvcu 因此,您可以尝试使用HttlClient(https://forums.asp.net/t/2098855.aspx?HTTP+Get+request+in+C+net

发出此请求

答案 3 :(得分:0)

您可以使用以下代码从网址内容中获取文件 -

String url="https://www.ah.nl/service/rest/delegate?url=%2Fproducten%2Fproduct%2Fwi224735%2Fdoritos-nacho-cheese&_=1513938720642";
System.Net.WebClient client=new System.Net.WebClient();
String json = client.DownloadString(url);
System.IO.File.WriteAllText("fileName.json",json);
Console.WriteLine(json);

这是一个有效的代码 -

https://dotnetfiddle.net/wmwrA5