C#WebClient无法从Web下载文本

时间:2018-07-02 10:20:32

标签: c# webclient

我正在研究一个从this website获取文本的项目。 但是当我在Visual Studio中测试它时,出现了一些错误:

  

值不能为null。参数名称:solutionDirectory

这是我的代码:

using System;
using System.Net;

public class Program
{
    public static void Main()
    {
        WebClient client = new WebClient();
        String temp = client.DownloadString("http://www.hkex.com.hk/eng/stat/dmstat/dayrpt/hsio180629.htm");
        Console.Write(temp);
    }
}

1 个答案:

答案 0 :(得分:0)

请使用HttpClient,这是一个很好的选择与webClient相比 而且您的问题似乎是您的项目(vcxproj)文件未正确设置。

因此,只需创建一个新应用程序并运行此代码即可。

Here you find Actually Difference

 Stream client = Task.Run(()=>new HttpClient().GetAsync("http://www.hkex.com.hk/eng/stat/dmstat/dayrpt/hsio180629.htm").Result.Content.ReadAsStreamAsync()).Result;
 using (var fileStream = new FileStream("D://data.txt", FileMode.Create, FileAccess.Write))
 {
     client.CopyTo(fileStream);
 }

完整的工作代码:-

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Stream client = Task.Run(()=>new HttpClient().GetAsync("http://www.hkex.com.hk/eng/stat/dmstat/dayrpt/hsio180629.htm").Result.Content.ReadAsStreamAsync()).Result;
            using (var fileStream = new FileStream("D://data.txt", FileMode.Create, FileAccess.Write))
            {
                client.CopyTo(fileStream);
            }
        }
    }
}

等待中

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            data();
            Console.ReadKey();
        }
        public static async void data()
        {
            var client = await new HttpClient().GetAsync("http://www.hkex.com.hk/eng/stat/dmstat/dayrpt/hsio180629.htm");
            var data= await client.Content.ReadAsStreamAsync();
            using (var fileStream = new FileStream("D://data.txt", FileMode.Create, FileAccess.Write))
            {
                data.CopyTo(fileStream);
            }
        }
    }
}