C#でJIRA REST APIとHttpWebRequestを使用してJIRAに添付ファイルをPOSTする方法は?
/ rest / api / 2 / issue / {issueIdOrKey} / attachmentsの下のドキュメントから:
役職
課題に1つ以上の添付ファイルを追加します。
このリソースは、マルチパートの投稿を想定しています。メディアタイプmultipart/form-dataは、RFC 1867で定義されています。ほとんどのクライアントライブラリには、マルチパート投稿の処理を簡単にするクラスがあります。たとえば、Javaでは、Apache HTTPコンポーネントライブラリは、マルチパートPOSTの送信を簡単にするMultiPartEntityを提供します。
XSRF攻撃から保護するために、このメソッドはmultipart / form-dataを受け入れるため、XSRF保護が適用されます。これは、X-Atlassian-Tokenのヘッダーを送信する必要があることを意味します。リクエストでnocheckを送信しないと、ブロックされます。
添付ファイルを含むmultipart/form-dataパラメーターの名前は「file」である必要があります
「myfile.txt」というファイルをアップロードしてREST-123を発行する簡単な例:
curl -D- -u admin:admin -X POST -H "X-Atlassian-Token:nocheck" -F "file = @ myfile.txt" http://myhost.test/rest/api/2/issue/TEST -123/添付ファイル
私は持っています
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 file=@" + 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();
}
しかし、それは404エラーを返します...