Bonjour à tous,

Je suis actuellement en train d'essayer d'uploader un fichier dans un document Nuxeo (5.4.0) via le service REST uploadFile.

Voici mon code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
string endpoint = "http://.../nuxeo/restAPI/default/a041a81b-8fa1-465c-88d3-3a89cbd64e2a/yopla/uploadFile";
WebClient webClient = new WebClient();
webClient.Headers.Add("Rest-Method", "POST");
webClient.Credentials = new NetworkCredential("Administrator", "Administrator");
var resp = webClient.UploadFile(endpoint, @"D:\autre\lien_utile.txt");
var response = Encoding.ASCII.GetString(resp);
Console.WriteLine(response);
J'obtiens en message de retour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<?xml version="1.0" encoding="UTF-8"?> 
<error class="java.lang.NullPointerException"/>
J'ai également essayé avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
                string endpoint = "http://.../nuxeo/restAPI/default/a041a81b-8fa1-465c-88d3-3a89cbd64e2a/yopla/uploadFile";
 
FileStream rdr = new FileStream(@"C:\test\test.pdf", FileMode.Open);
 
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(endpoint);
                req.Credentials = new NetworkCredential("Administrator", "Administrator");
                req.Method = "POST";
                req.ContentType = "multipart/form-data; boundary="+boundary;
                req.ContentLength = rdr.Length;
                req.AllowWriteStreamBuffering = true;
                //req.KeepAlive = false;
 
                Stream reqStream = req.GetRequestStream();
                byte[] inData = new byte[rdr.Length];
 
                int bytesRead = rdr.Read(inData, 0, (int)rdr.Length);
                // put data into request stream
                reqStream.Write(inData, 0, (int)rdr.Length);
                rdr.Close();
 
                // after uploading close stream 
                reqStream.Close();
 
public string GetMessage(HttpWebRequest request)
        {
            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var responseValue = string.Empty;
 
                if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created)
                {
                    string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode);
                    throw new ApplicationException(message);
                }
 
                // grab the response  
                using (var responseStream = response.GetResponseStream())
                {
                    using (var reader = new StreamReader(responseStream))
                    {
                        responseValue = reader.ReadToEnd();
                    }
                }
                return responseValue;
            }
        }
qui me renvoie le même message. Par contre si j'utilise l'API "upload" à la place de "uploadFile", ce code me renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<?xml version="1.0" encoding="UTF-8"?> 
<uploads/>
Mais pas de différence dans Nuxeo...

Je ne pense pas tombé sur de grand expert Nuxeo sur ce forum (si c'est le cas tant mieux ! ) mais au final c'est une requête Http, donc si quelqu'un a une idée quelconque sur la question...

Merci d'avance.