How to GET data from an URL and save it into a file in binary in C#.NET without the encoding mess?

前端 未结 3 801
悲&欢浪女
悲&欢浪女 2021-02-01 18:51

In C#.NET, I want to fetch data from an URL and save it to a file in binary.

Using HttpWebRequest/Streamreader to read into a string and saving using StreamWriter works

3条回答
  •  無奈伤痛
    2021-02-01 19:21

    Just don't use any StreamReader or TextWriter. Save into a file with a raw FileStream.

    String url = ...;
    HttpWebRequest  request  = (HttpWebRequest) WebRequest.Create(url);
    
    // execute the request
    HttpWebResponse response = (HttpWebResponse) request.GetResponse();
    
    // we will read data via the response stream
    Stream ReceiveStream = response.GetResponseStream();
    
    string filename = ...;
    
    byte[] buffer = new byte[1024];
    FileStream outFile = new FileStream(filename, FileMode.Create);
    
    int bytesRead;
    while((bytesRead = ReceiveStream.Read(buffer, 0, buffer.Length)) != 0)
        outFile.Write(buffer, 0, bytesRead);
    
    // Or using statement instead
    outFile.Close()
    

提交回复
热议问题