Как можно вызвать веб-сервисы SAP SOAP в Android без Ksoap2? - PullRequest
0 голосов
/ 29 февраля 2012

Я хочу использовать веб-сервисы SAP SOAP от Android без ksop2? есть ли альтернатива в Android?

1 Ответ

0 голосов
/ 29 февраля 2012

да, вы можете, но вы должны передать мыло XML в запросе http, как показано ниже.

public class SimpleHTTPRequest {
    String envelope1="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<soap:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:insertdata\"" +
    " targetNamespace=\"urn:insertdata\">"+
    "<soap:Body>"+
    "<insertdata>"+
    "<name xsi:type=\"xsd:string\">ghjghj</name>"+
    "<phone xsi:type=\"xsd:string\">1111</phone>"+
    "<email xsi:type=\"xsd:string\">ascom</email>"+
    "<score xsi:type=\"xsd:string\">12</score>"+
    "</insertdata>"+
    "</soap:Body>"+
    "</soap:Envelope>";
    /**
     * @param args
     */
    public static void main(String[] args) {
         String url="http://url/iphone_soap_server.php/insertdata";
          String soapAction="http://urkl/iphone_soap_server.php/insertdata/insertdata";
    HttpURLConnection connection = null;
    OutputStreamWriter wr = null;
    BufferedReader rd  = null;
    StringBuilder sb = null;
    String line = null;
    URL serverAddress = null;
    String data = "width=50&height=100";
    try {
        serverAddress = new URL("http://url/soap-server.php?wsdl");

        connection = null;

        //Set up the initial connection
        connection = (HttpURLConnection)serverAddress.openConnection();

        connection.setRequestMethod("POST");
        connection.setDoOutput(true);

        connection.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());


        writer.write(data);
        writer.flush();




        rd  = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        sb = new StringBuilder();

        while ((line = rd.readLine()) != null)
        {
            sb.append(line + '\n');
        }

        System.out.println(sb.toString());

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (ProtocolException e1) {
        e1.printStackTrace();
    } catch (IOException e2) {
        e2.printStackTrace();
    }
    finally
    {
        //close the connection, set all objects to null
        connection.disconnect();
        rd = null;
        sb = null;
        wr = null;
        connection = null;
    }
}
}
...