Bonjour, je suis actuellement en train de travailler sur un logiciel de facturation, il y a une documentation qui explique que l'on peut mettre à jour une offre en PUT avec REST en Java,
La documentation montre ceci :
J'ai donc fait mon premier WebService en Put avec les services Rest en Java!MediaType application/json
}
Code JSON : 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 { "updateFeatures" : { "priority" : 4, "channelKey" : "Demo channel", "feature" : [ { "@xsi.type" : "CreateFeature", "featureKey" : "DEMO_RT_INTERNET:PHONE", "value" : { "@xsi.type" : "FeatureValuePhoneNumber", "value" : "+ 43 316 8003 2001" } }, { "@xsi.type" : "DeleteFeature", "id" : 141526 }, { "@xsi.type" : "UpdateFeature", "id" : 141526, "value" : { "@xsi.type" : "FeatureValueSelect", "value" : "200 MB" } } ] }
Voici le code ;
Je pense avoir compris qu'il faut créer un fichier updateFacture.xml (je ne suis cependant pas sûr de cela...)
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
48
49
50
51
52 package essaiPostFile; import java.io.File; import org.apache.commons.codec.binary.Base64; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.ContentBody; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.util.EntityUtils; public class PostFile { private static final String BASIC_AUTH = "BASIC"; public static void main(String[] args) throws Exception { HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); HttpPut httpput = new HttpPut("http://XX.XX.XX.XX:XXXX/rest/customers/1/offers/1/features"); File file = new File("C:/Users/arnaud.mollica/Documents/Projet/templates/reports/src/main/resources/customized_invoice_template/updateFacture.xml"); MultipartEntity mpEntity = new MultipartEntity(); ContentBody cbFile = new FileBody(file, "application/xml"); mpEntity.addPart("filename", cbFile); httpput.setEntity(mpEntity); System.out.println("executing request " + httpput.getRequestLine()); HttpResponse response = httpclient.execute(httpput); HttpEntity resEntity = response.getEntity(); System.out.println(response.getStatusLine()); if (resEntity != null) { System.out.println(EntityUtils.toString(resEntity)); } if (resEntity != null) { resEntity.consumeContent(); } httpclient.getConnectionManager().shutdown(); } }
Le contenu de mon fichier XML est ce qui était marqué plus haut :
L'affichage de la console est le suivant :
Il est probable que j'ai fait une erreur de compréhension pour bien utiliser PUT...executing request PUT http://XX.XX.XX.XX:XXXX/rest/custome...ers/1/features HTTP/1.1
HTTP/1.1 415 Unsupported Media Type
Merci par avance pour votre aide
Partager