|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 23
|
[J2ME] Richiesta SOAP a web services
Salve a tutti ragazzi, sto provando a scrivere una applicazioncina in j2me che si interfacci con dei web services, in particolare quelli di via michelin.
Ho creato un metodo che mi invia una richiesta soap in un messaggio http ma il server mi ritorna un errore. In particolare il metodo che mi fa la richiesta è questo Codice:
private void getAuthenticationId() {
HttpsConnection connection;
InputStream is;
OutputStream os;
try {
// apro connessione al server
connection = (HttpsConnection) Connector.open(this.urlServerAuthentication, Connector.READ_WRITE);
// setto header e tipo di comunicazione
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("User-agent", "Dedo Michelin Guide");
connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
connection.setRequestProperty("SOAPAction", "\"\"");
// setto e invio la richiesta al server
String request = XmlAccessManagementCreator.getAuthenticationId(this.username, this.password, "60");
os = connection.openDataOutputStream();
os.write(request.getBytes());
// leggo la risposta del server
is = connection.openDataInputStream();
String response = "";
int ch;
while ((ch = is.read()) != -1) {
response += (char) ch;
}
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
}
}
Codice:
public static final String getAuthenticationId(String username, String password, String duration) {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n"+
"<SOAP-ENV:Envelope\n"+
"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\n"+
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"+
"<SOAP-ENV:Body>"+
"<impl:getAuthenticationIdRequest soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:impl=\"http://service.security.ws2.viamichelin.com\">\n"+
"<impl:getAuthenticationId\n"+
"<login xsi:type=\"xsd:string\">"+username+"</login>"+
"<password xsi:type=\"xsd:string\">"+password+"</password>"+
"<duration xsi:type=\"xsd:int\">"+duration+"</duration>"+
"<impl:getAuthenticationId>"+
"</SOAP-ENV:Body>\n"+
"</SOAP-ENV:Envelope>";
return xml;
}
Codice:
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.userException</faultcode> <faultstring>org.xml.sax.SAXParseException: The prefix "soapenv" for attribute "soapenv:encodingStyle" associated with an element type "impl:getAuthenticationIdRequest" is not bound.</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> link P.S. mi scuso per il lungo post :P |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 23
|
Nessuno può darmi una mano?
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 23
|
Ragazzi ho risolto, sbagliavo un pò a fare delle dichiarazioni, questo è l'xml corretto
Codice:
public static final String getAuthenticationId(String username, String password, String duration) {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n"+
"<soapenv:Envelope " +
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" "+
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"+
"<soapenv:Body>"+
"<impl:getAuthenticationId xmlns:impl=\"http://schemas.xmlsoap.org/soap/encoding/\">\n"+
"<login xsi:type=\"xsd:string\">"+username+"</login>"+
"<password xsi:type=\"xsd:string\">"+password+"</password>"+
"<duration xsi:type=\"xsd:int\">"+duration+"</duration>"+
"</impl:getAuthenticationId>"+
"</soapenv:Body>\n"+
"</soapenv:Envelope>";
return xml;
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:42.



















