【问题标题】:Send zip file using web service使用 Web 服务发送 zip 文件
【发布时间】:2019-01-06 12:27:16
【问题描述】:

我使用 .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;
}

【问题讨论】:

  • 是的,你的代码必要的,即使它听起来像基本的东西。
  • 使用像wireshark或fiddler这样的嗅探器。将 Advanced REST Client 结果与您的应用程序结果进行比较。查看 http 标头。通常你必须在你的代码中添加一个缺失的标题。
  • webserverStatus 不是一个好名字,因为我不知道它是什么。无论是哪种情况,您都应该将其命名为 webServerIsActivewebserverExists
  • 是的,你是对的,webserverStatus 对我来说只是一个帮助变量。

标签: c# file-upload multipartform-data webservice-client


【解决方案1】:

我意识到在 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;
}

更多详情请关注this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2019-07-08
    相关资源
    最近更新 更多