我正在尝试使用.net HttpClient上传工件,但收到400错误请求。我在请求内容中提供了一个zip文件。这是我的代码。
我能够通过curl命令执行此操作,并将curl命令转换为.net代码。
curl -v -F r =释放文件夹-F hasPom = false -F g =释放组-F a = artifact-01 -F v = 1.0 -F p = zip -F file = @ P:\ test.zip -u用户名:密码https://localhost:80/nexus/service/local/artifact/maven/content-不安全
请在此处帮助查明我在做什么错。
var handler = new HttpClientHandler();
using (var httpClient = new HttpClient(handler))
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"),
ConfigurationManager.AppSettings["nexusUrl"]))
{
var base64authorization = Convert.ToBase64String
(Encoding.ASCII.GetBytes("username:password"));
request.Headers.TryAddWithoutValidation("Authorization",
$"Basic
{base64authorization}");
var multipartContent = new MultipartFormDataContent();
multipartContent.Add(new StringContent
(ConfigurationManager.AppSettings["repository"]), "r");
multipartContent.Add(new StringContent("false"), "hasPom");
multipartContent.Add(new StringContent
(ConfigurationManager.AppSettings["group"]), "g");
multipartContent.Add(new StringContent("artifact-01), "a");
multipartContent.Add(new StringContent("1.0"), "v");
multipartContent.Add(new StringContent("zip"), "p");
multipartContent.Add(new StringContent("zip"), "e");
multipartContent.Add(new ByteArrayContent(File.ReadAllBytes
(@"P:\test.zip")), "file", Path.GetFileName(@"P:\test.zip"));
request.Content = multipartContent;
var response = await httpClient.SendAsync
(request);
}
}