Jak wysłać załącznik POST do JIRA za pomocą interfejsu JIRA REST API i HttpWebRequest w języku C#?Jak POST dołączyć do JIRA przy użyciu REST API?
Z documentation under /rest/api/2/issue/{issueIdOrKey}/attachments:
POST
Dodaj jeden lub więcej załączników do emisji.
Ten zasób oczekuje ogłoszenia wieloczęściowego. Media typu multipart/dane-formularza są zdefiniowane w RFC 1867. Większość bibliotek klienta posiada klasy, które ułatwiają obsługę wieloczęściowych postów. Na przykład w Javie biblioteka Apache HTTP Components zapewnia MultiPartEntity, która ułatwia wysyłanie wieloczęściowego testu POST.
W celu ochrony przed atakami XSRF, ponieważ ta metoda akceptuje wieloczęściowe/formularzowe dane, ma na sobie ochronę XSRF. Oznacza to, że musisz przesłać nagłówek X-Atlassian-Token: nocheck z żądaniem, w przeciwnym razie zostanie zablokowany.
Nazwa parametru wieloczęściowy/form-data, która zawiera załączniki muszą być „plik”
Prosty przykład załadować plik o nazwie „myfile.txt” do wystawienia REST-123:
pozwijane -D -u admin: admin -X POST-H "X-Atlassian-Token: nocheck" -F "[email protected]" http://myhost.test/rest/api/2/issue/TEST-123/attachments
mam
foreach (JIRAAttachments attachm in attachments.attachments)
{
request = HttpWebRequest.Create(
logInformation.GetUri() + "/rest/api/2/issue/" + key + "/attachments"
) as HttpWebRequest;
request.Headers.Add("Authorization: Basic " + logInformation.GetEncodeAuthentication());
request.Method = "POST";
request.ContentType = "multipart/form-data";
request.Headers.Add("X-Atlassian-Token: nocheck [email protected]" + Path.GetFullPath(@"..\Attachments\" + attachm.filename));
request.KeepAlive = true;
request.Proxy = wp;
response = (HttpWebResponse)request.GetResponse();
Stream s = response.GetResponseStream();
FileStream fs = new FileStream(Path.GetFullPath(@"..\Attachments\" + attachm.filename), FileMode.Open);
byte[] write = new byte[256];
int count = fs.Read(write, 0, write.Length);
while (count > 0)
{
s.Write(write, 0, count);
count = fs.Read(write, 0, write.Length);
}
fs.Close();
s.Close();
response.Close();
}
ale zwraca błąd 404 ...
Co REST ramach używasz? –
Czy możesz również podać link do cytatu z dokumentacji? –
[JIRA 5.1.2 REST API] (http://docs.atlassian.com/jira/REST/latest/) –