Je migre de l'API SOAP de Confluence vers their REST API. Je vois qu'il ya un soutien for adding attachments to a page (by doing a POST) mais je suis en train de rencontrer des problèmes pour le faire fonctionner (je reçois un message d'erreur 403: Forbidden). J'ai d'autres objets "get" fonctionnant bien à travers l'api de repos mais faire un post de pièce jointe semble continuer à échouer.En C#, quelle est la bonne façon d'envoyer des pièces jointes à l'API REST de Confluence?
Voici mon code actuel (donné un nom de fichier spécifique):
byte[] rawData = File.ReadAllBytes(filename);
var pageId = "11134";
var url = new Uri("http://example.com:9088/rest/api/content/" + pageId + "/child/attachment");
var requestContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(rawData);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse(attachement.contentType);
requestContent.Add(imageContent, "file", attachement.fileName);
requestContent.Headers.Add("X-Atlassian-Token", "nocheck");
Voyez-vous si je fais quelque chose de mal au-dessus?
Confluence docs séjours: « Renvoyé si les pièces jointes est désactivé ou si vous n'êtes pas autorisé à ajouter des pièces jointes à ce contenu. ». Avez-vous essayé d'utiliser CURL comme dans la page ici https://docs.atlassian.com/confluence/REST/latest/#d3e787 et voir si elle renvoie encore 403? –
Je viens d'essayer curl et je reçois une erreur curl <56> Erreur Recv: Connexion a été réinitialisée. J'ai utilisé cette syntaxe curl -D- -u utilisateur: pwd -X POST -H "X-Atlassian-Token: nocheck" -F "fichier = @test.txt" htttp: // exemple: 9088/reste/api/content/71105117/child/attachment (NOTE: je mets un "t" supplémentaire dans "http" dans ce commentaire afin que SO ne tente pas de le convertir en un hyperlien – leora
@SimonMourier - aussi, y at-il une autre authentification requise sur le code C# – leora