Создание Jira Issue из. Net Core с файлом в качестве вложения - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть метод ниже, который создает запрос Jira Issue, используя данные, которые были ему переданы. Запрос Jira создается успешно, но сейчас я хотел бы отправить файл с запросом, например, изображение или CSV. Я не хочу использовать запрос curl, и я пытался использовать составные форм-данные, но я не могу получить файл для загрузки с проблемой. Как мне go успешно прикрепить файл?

 public async Task<bool> CreateIssue(JiraIssueDto jiraIssueDto)
    {
        using var httpClient = new HttpClient();
        using var request = new HttpRequestMessage(new HttpMethod("POST"), "www.Website/Url/Example");
        request.Headers.TryAddWithoutValidation("Accept", "application/json");
        request.Headers.TryAddWithoutValidation("Authorization", "Basic InsertToken");

        JiraRequestDto jiraRequestDto = new JiraRequestDto
        {
            fields = new JiraFields()
        };

        jiraRequestDto.fields.summary = jiraIssueDto.Summary;

        jiraRequestDto.fields.issuetype = new JiraIssuetype();

        jiraRequestDto.fields.project = new JiraProject();

        jiraRequestDto.fields.description = new JiraDescription
        {
            content = new List<JiraContent>()
        };

        var contentlistitem = new JiraContent
        {
            content = new List<JiraContent1>()
        };

        var contentlistitem1 = new JiraContent1
        {
            text = jiraIssueDto.Description,
        };

        contentlistitem.content.Add(contentlistitem1);

        jiraRequestDto.fields.description.content.Add(contentlistitem);

        string json = JsonConvert.SerializeObject(jiraRequestDto);
        var myCleanJsonObject = JObject.Parse(json);

        request.Content = new StringContent(myCleanJsonObject.ToString());
        request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

        var response = await httpClient.SendAsync(request);

        if (response.IsSuccessStatusCode)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
...