首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将代表压缩文件的byte[]从一个接口发送到另一个接口

将代表压缩文件的byte[]从一个接口发送到另一个接口
EN

Stack Overflow用户
提问于 2019-10-11 21:55:02
回答 1查看 770关注 0票数 0

我正在尝试将我在一个API (让我们称之为'API 1')中创建的zip文件发送到另一个API(也称为'API 2')。

最初,我试图只发送byte[]作为API1中的响应,但当访问API2中的响应时,byte[]的大小不同,文件已损坏。然后我尝试将API1中的byte[]转换为base64字符串,然后在API2中解码,但发现字符串不同,再次发现文件已损坏。

这是我目前的代码……

API 1代码

代码语言:javascript
运行
复制
[HttpPost]
public IActionResult BuildZipFile(Custom myObject)
{
    CODE HERE WHICH GENERATES ZIP FILE
    byte[] zipFile = System.IO.File.ReadAllBytes(ZIP FILE PATH);
    return Ok(Convert.ToBase64String(zipFile));
}

API 2代码

代码语言:javascript
运行
复制
[HttpPost]
public IActionResult RetrieveZipFile(Custom myObject)
{
    RestClient client = new RestClient(@"https://localhost:44323/api/ProcessBuild");
    RestRequest request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", JsonConvert.SerializeObject(myObject), ParameterType.RequestBody);
    var response = client.Execute(request);
    byte[] retrievedZipFile = Convert.FromBase64String(response.Content);
    return File(retrievedZipFile, "application/zip", process.Name + ".zip");
}

当前,这将返回一个损坏的zip文件。在这方面的任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 22:11:01

我不确定mime类型。这应该可以很好地工作。我不熟悉RestSharp。

代码语言:javascript
运行
复制
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        return File(System.IO.File.OpenRead(filePath), "application/zip");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58342786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档