尝试提交POST请求以在nexus中上传工件时出现400错误请求

时间:2019-10-09 19:32:06

标签: c# .net nexus

我正在尝试使用.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);                   
    }                                
}

0 个答案:

没有答案