我正在尝试将我在一个API (让我们称之为'API 1')中创建的zip文件发送到另一个API(也称为'API 2')。
最初,我试图只发送byte[]作为API1中的响应,但当访问API2中的响应时,byte[]的大小不同,文件已损坏。然后我尝试将API1中的byte[]转换为base64字符串,然后在API2中解码,但发现字符串不同,再次发现文件已损坏。
这是我目前的代码……
API 1代码
[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代码
[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文件。在这方面的任何帮助都将不胜感激!
发布于 2019-10-11 22:11:01
我不确定mime类型。这应该可以很好地工作。我不熟悉RestSharp。
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return File(System.IO.File.OpenRead(filePath), "application/zip");
}https://stackoverflow.com/questions/58342786
复制相似问题