У меня есть метод ниже, который создает запрос 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;
}
}
}