400 Bad Request при попытке отправить POST-запрос для загрузки артефактов в Nexus - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь загрузить артефакты, используя .net HttpClient, но получаю 400 Bad Request. Я даю почтовый файл в содержании запроса. Это мой код.

Я смог сделать это с помощью команды curl и преобразовал команду curl в код .net.

curl -v -F r = release-folder -F hasPom= false -F g = релиз-группа -F a = артефакт-01 -F v = 1.0 -F p = zip -F файл = @ 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);                   
    }                                
}
...