c# - 使用 Web 服务发送 zip 文件
问题描述
我使用 .NET Web API 创建了一个 Web 服务。Web 服务部分效果很好,我可以使用 Advanced REST Client 发送 zip 文件。问题是我无法以编程方式发送 zip 文件。这是高级 REST 客户端请求标头:
我尝试了一些事情但没有成功。考虑到这是 Web 开发人员(我是桌面开发人员)的基本内容,我没有发布我尝试过的内容,但如果有必要,我会的。先感谢您。
编辑:这是我最近的版本
private async void BeginUpdate(bool webserverStatus)
{
if (!webserverStatus) return;
var httpClient = new HttpClient();
var form = new MultipartFormDataContent();
var byteArray = File.ReadAllBytes("myUpdatePackage.zip");
form.Add(new ByteArrayContent(byteArray, 0, byteArray.Length), "myUpdatePackage", "myUpdatePackage.zip");
HttpResponseMessage response = await httpClient.PostAsync(@"http://localhost:9000/api/file/", form);
response.EnsureSuccessStatusCode();
httpClient.Dispose();
string sd = response.Content.ReadAsStringAsync().Result;
}
解决方案
我意识到在 Advanced REST Client 上,我使用的是 PUT,同时在我的 C# 应用程序中,我使用 POST 调用它
HttpResponseMessage response = await httpClient.PostAsync(@"http://localhost:9000/api/file/", form);
所以,这里是完整的代码:
private async void BeginUpdate(bool webserverStatus)
{
if (!webserverStatus) return;
var byteArray = File.ReadAllBytes("myUpdatePackage.zip");
var httpClient = new HttpClient();
var form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(byteArray, 0, byteArray.Length), "myUpdatePackage", "myUpdatePackage.zip");
HttpResponseMessage response = await httpClient.PutAsync(@"http://localhost:9000/api/file/", form);
response.EnsureSuccessStatusCode();
httpClient.Dispose();
string sd = response.Content.ReadAsStringAsync().Result;
}
关于这个问题的更多细节
推荐阅读
- python - ImportError:尝试使用 pip 时无法导入名称“FormatControl”
- json - Ansible,使用变量修改主机和端口
- mysql - MySQL 选择 col1 (int) 的值为 2 OR 3 AND col2 (tinybit) = 0
- intellij-idea - 如何增加 IntelliJ 中悬停文档的超时时间?
- python - ValueError:“conv3d_3/convolution”(操作:“Conv3D”)从 1 中减去 22 导致的负尺寸大小
- jquery - 动态下拉菜单不做条件语句
- acumatica - Acumatica - 如何返回 SalesInvoice 的最后修改日期?
- pywinauto - 如何在 Windows 开始菜单中获取元素的 top_level_parent()?
- reactjs - react-bootstrap-table2的边框上怎么可以设置一个图标
- python - 如何检查函数是在 IDLE 中运行还是从另一个函数/模块运行