首页 > 解决方案 > 附加 zip 文件在 WEB API 中不起作用,但通过 POSTMAN 起作用

问题描述

我有一个 .net 核心 WEB API 方法,需要调用另一个需要 .zip 文件的外部 API (java)。当尝试通过附加文件通过 Postman 访问外部 API 时,它工作正常(获得预期响应)。但是,当我通过我的 WEB API 代码传递相同的参数时,它会抛出 403-Forbidden 错误。

如果我遗漏任何东西,请告诉我......

提前致谢!!!

请求头

请求正文文件附加

响应 403 错误

API 代码:用于连接 api:

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("pane", "forward");
parameters.Add("forward_path", "/store/execute");
parameters.Add("csrf", "1996fe6b2d0c97a8a0db725a10432d83");
parameters.Add("data_format", "binary");
newContent = new FormUrlEncodedContent(parameters);


MultipartFormDataContent form = new MultipartFormDataContent();
HttpContent con;// = new StringContent("file_name");
//form.Add(con, "file_name");
form.Add(newContent);

var str = new FileStream("D:\\dummy\\xmlstore.zip", FileMode.Open);
con = new StreamContent(str);
con.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
    Name = "file_name",
    FileName = "xmlstore.zip"
};
con.Headers.ContentType = new MediaTypeHeaderValue("application/zip");

form.Add(con);
client.DefaultRequestHeaders.Add("Cookie", "JSESSIONID=05DEB277E294CBF73288F2E24682C7EE;");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("br"));
client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("user-agent", "1"));
var resp = client.PostAsync("java-api", con).Result;

标签: asp.net-web-api.net-corepostmanzipfile

解决方案


推荐阅读