我尝试使用HttpClient post方法将文件附加到JIRA问题附件 - 返回JIRA JSON对象为[]
。请在下面找到我的代码块。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using System.Json;
using System.Web.Script.Serialization;
using System.Net;
namespace JiraAttachements
{
class Class1
{
public void AddAttachment()
{
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
client.DefaultRequestHeaders.ExpectContinue = false;
client.Timeout = TimeSpan.FromMinutes(90);
byte[] crdential = UTF8Encoding.UTF8.GetBytes("wwww:yyyy");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(crdential));
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var filecontent = new ByteArrayContent(System.IO.File.ReadAllBytes("C:\\Users\\xxx\\Desktop\\Keys.txt"));
var content = new MultipartFormDataContent("AA");
content.Headers.Add("X-Atlassian-Token", "nocheck");
content.Headers.Add("charset", "UTF-8");
content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data")
{
Name="\"file\"",
FileName = "C:\\Users\\xxx\\Desktop\\Keys.txt"
};
content.Add(filecontent);
try
{
client.PostAsync("https://{server name}.atlassian.net/rest/api/2/issue/TEST-1/attachments", content).ContinueWith(requesTask =>
{
try
{
HttpResponseMessage response = requesTask.Result;
if (response.StatusCode == "OK")
{
Console.WriteLine(" Attached .");
}
else
{
}
}
catch (Exception exception)
{
}
});
}
catch (Exception exception)
{
Console.WriteLine(exception.StackTrace.ToString());
Console.ReadLine();
}
Console.ReadKey();
}
}
}
请在我的代码中突出显示我的错误。我对multipart / form-data边界值集程序感到震惊。请使用HttpClient
post方法为JIRA问题附件提供一些示例。
答案 0 :(得分:0)
现在我可以通过更改以下代码块
将文件附加到JIRA问题附件部分var filename = "C:\\Users\\XXXX\\Desktop\\Sample.xlsx";
var file_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
var filecontent = new ByteArrayContent(System.IO.File.ReadAllBytes(filename));
var content = new MultipartContent("form-data", "AAAA");
content.Headers.Add("X-Atlassian-Token", "nocheck");
content.Headers.Add("charset", "UTF-8");
filecontent.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") {
Name="\"file\"",
FileName = "Attachment.xlsx"
};
filecontent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(file_type);
content.Add(filecontent);