Bonjour,
Je dois modifier un vieux code realise avec Eclipse 2.1 .
Je voudrais envoyer un fichier a un web service. Je sais comment envoyer un string facilement en J2me. En revanche j'ignore comment envoyer un fichier ?

J'ai lu sur internet que on peut envoyer des fichiers en encodant les bytes en base64 mais cette solution est lourde. La communication devient lente.

J'utilise le code suivant pour envoyer des string en java a un web service.
COmment modifier ce code pour envoyer des fichiers ?

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
	public String sendRequest() {
		String outputResponse = "";
		try {
			URL url= new URL(WebServicePath); 
 
			System.out.println("\nWeb Server:");
			System.out.println(WebServicePath);
 
			// open an HTTP connection to the web service
			HttpURLConnection connection = (HttpURLConnection)url.openConnection();
			connection.setRequestMethod("POST");
			connection.setDoOutput(true);
			connection.setDoInput(true);
			// make it a SOAP request
			connection.setRequestProperty("Content-type", "text/xml; charset=utf-8");
			connection.setRequestProperty("SOAPAction", XmlNamespace + MethodName);
 
			// build the SOAP request for GetTime
			//http://localhost/time/TimeService.asmx?op=GetTime
 
			String strParameters = "";
			for (int t = 0; t < ParamNames.size(); t++) {
				String name = (String) ParamNames.elementAt(t);
				String data = (String) ParamData.elementAt(t);
				strParameters = strParameters + "<" + name + ">" + data + "</" + name + ">\n";
			} 
 
			String msg =
			"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
			"<soap:Envelope " +
				//" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
				//" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" +
				" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
				" <soap:Body>\n" +                
				"   <" + MethodName + " xmlns=\"" + XmlNamespace +"\">\n" +
					strParameters +        
				"   </"+ MethodName +"> \n" +                
				" </soap:Body>\n" +
			"</soap:Envelope>";
 
			// send the SOAP request
			byte[] bytes = msg.getBytes();
			connection.setRequestProperty("Content-length", String.valueOf(bytes.length));
			// output
			System.out.println("\nSOAP call:");
			System.out.println("Content-type:"+connection.getRequestProperty("Content-type"));
			System.out.println("Content-length:"+connection.getRequestProperty("Content-length"));
			System.out.println("SOAPAction:"+connection.getRequestProperty("SOAPAction"));
			System.out.println(msg);
 
			OutputStream out = connection.getOutputStream();
			out.write(bytes);
			out.close();
			// read and print the SOAP response
			BufferedReader in = new BufferedReader(
							new InputStreamReader(
							connection.getInputStream()));
			String inputLine;
 
 
			System.out.println("\nServer response:");
			while ((inputLine = in.readLine()) != null)
			{
				System.out.println(inputLine);
				outputResponse+=inputLine;
			}
			in.close();
		} catch (Exception e) {					
			System.out.println("-- error:" + e.getMessage());
			return null;
		} 
	  return outputResponse;
  }
merci