C# 正在将表示zip文件的字节[]从一个API发送到另一个API

C# 正在将表示zip文件的字节[]从一个API发送到另一个API,c#,arrays,asp.net-web-api,encoding,decoding,C#,Arrays,Asp.net Web Api,Encoding,Decoding,我试图将我在一个API中创建的zip文件(让我们称之为“API1”)发送给另一个API(也称为“API2”) 最初,我试图将字节[]作为API 1中的响应发送,但在访问API 2中的响应时,字节[]的大小不同,文件已损坏。然后,我尝试将API 1中的字节[]转换为base64字符串,然后在API 2中进行解码,但意识到字符串不一样,文件再次损坏 这是我目前的代码 API 1代码 API 2代码 当前,这将返回一个已损坏的zip文件。在此方面的任何帮助都将不胜感激 我不确定mime类型。这应该行得

我试图将我在一个API中创建的zip文件(让我们称之为“API1”)发送给另一个API(也称为“API2”)

最初,我试图将字节[]作为API 1中的响应发送,但在访问API 2中的响应时,字节[]的大小不同,文件已损坏。然后,我尝试将API 1中的字节[]转换为base64字符串,然后在API 2中进行解码,但意识到字符串不一样,文件再次损坏

这是我目前的代码

API 1代码 API 2代码
当前,这将返回一个已损坏的zip文件。在此方面的任何帮助都将不胜感激

我不确定mime类型。这应该行得通。我对RestSharp不熟悉

using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        return File(System.IO.File.OpenRead(filePath), "application/zip");
    }

我猜您使用的是RestSharp而不是.NET Framework HttpClient?看来你发送文件的方式不对。我发现了这个例子:在API中,通过将字符串转换为base 64返回字符串,但您的签名显示byte[]@mortb这似乎是将文件附加到请求。我正试图将其作为回复发送并接收。@AnilGoel好样的!我现在已经更新了这篇文章,这是一个输入错误。文件将在向用户展示时保存在内存中(在API 2中)。因此,我不会提供文件路径。@未知呈现好的,我现在明白你的意思了。为什么要拆分请求呢?还可以将完整对象传递给控制器操作,也可以传递路径。有关
返回文件()
;的更多信息,请参阅文档;。
[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");
}
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        return File(System.IO.File.OpenRead(filePath), "application/zip");
    }