我可以将数据发布到URI并在单个WebClient
请求中下载文件吗?
TL;DR
我使用扩展WebClient
的类来联系我们的PHP API并下载文件。该类向CookieContainer
添加WebClient
以启用PHP会话。
WebClient.UploadValues()
向服务器发布NameValueCollection
查询,以验证以下请求。WebClient.DownloadFile()
下载该文件。这是API的唯一部分,它不是非常RESTful,我更喜欢将其转换为单个无状态查询。
我可以在调用WebClient.QueryString
之前使用NameValueCollection
手动设置DownloadFile()
查询字符串,但该方法使用GET方法,并且API期望POST数据。
在调用DownloadFile()
之前,是否可以将方法设置为POST?还有另一种方式吗?
答案 0 :(得分:2)
答案比我意识到的要简单( doh )。
using (WebClient client = new WebClient())
{
byte[] result = client.UploadValues(url, data);
File.WriteAllBytes(path, result);
}
UploadValues()
发送POST数据。返回的byte []数组将是文件。