【问题标题】:Use WebClient to POST query and download file使用 WebClient POST 查询和下载文件
【发布时间】:2016-08-18 14:00:39
【问题描述】:

我可以在单个 WebClient 请求中将数据发布到 URI 并下载文件吗?

TL;DR

我正在使用扩展 WebClient 的类来联系我们的 PHP API 并下载文件。该类将CookieContainer 添加到WebClient 以启用PHP 会话。

  1. WebClient.UploadValues() 向服务器发布 NameValueCollection 查询以验证以下请求。
  2. WebClient.DownloadFile() 下载文件。

这是 API 中唯一不是非常 RESTful 的部分,我更愿意将其移至单个无状态查询中。

我可以在调用DownloadFile() 之前使用WebClient.QueryString 手动设置NameValueCollection 查询字符串,但该方法使用GET 方法,并且API 需要POST 数据。

在调用DownloadFile()之前可以将方法设置为POST吗?还有其他方法吗?

【问题讨论】:

    标签: c# .net rest webclient


    【解决方案1】:

    答案比我想象的要简单(doh)。

    using (WebClient client = new WebClient())
    {
        byte[] result = client.UploadValues(url, data);
        File.WriteAllBytes(path, result);
    }
    

    UploadValues() 发送 POST 数据。返回的 byte[] 数组将是文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多