Как получить ответ от службы WS SOAP в Java? - PullRequest
0 голосов
/ 11 октября 2011

Мне нужно создать приложение для получения XML-ответа от этого сервиса http://www.mcds.co.il/YouTube/ChanelApi.asmx без дополнительных библиотек, но я не знаю, как мне это сделать.Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 11 октября 2011
    URL url = new URL("http://www.mcds.co.il/YouTube/ChanelApi.asmx");


    //generate your xml 
    String data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + 
            "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n" + 
            "  <soap:Body>\r\n" + 
            "    <GetChanel xmlns=\"http://tempuri.org/\">\r\n" + 
            "      <CategoryName>string</CategoryName>\r\n" + 
            "    </GetChanel>\r\n" + 
            "  </soap:Body>\r\n" + 
            "</soap:Envelope>";


    HttpURLConnection  conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "text/xml");

    conn.setRequestProperty("Content-Length", Integer.toString(data.getBytes().length));
    conn.setRequestProperty("SOAPAction","\"http://tempuri.org/GetChanel\"");

    conn.setUseCaches (false);
    conn.setDoOutput(true);
    conn.setDoInput(true);

    DataOutputStream wr = new DataOutputStream (
            conn.getOutputStream ());
    wr.writeBytes(data);
    wr.flush ();
    wr.close ();

    final char[] buffer = new char[0x10000];
    StringBuilder out = new StringBuilder();
    Reader in = new InputStreamReader(conn.getInputStream(), "UTF-8");
    int read;
    do {
      read = in.read(buffer, 0, buffer.length);
      if (read>0) {
        out.append(buffer, 0, read);
      }
    } while (read>=0);
    System.out.println(out);

    //parse out 
0 голосов
/ 11 октября 2011

Вы можете использовать Apache Axis для генерации кода клиента SOAP, см. Раздел «Использование веб-службы». Лучший способ четко увидеть, что происходит, - использовать инструмент WSDL2Java, который поставляется с Axis, для создания клиентских заглушек. Это создаст SOAP-клиент для вас, и вы сможете взглянуть на объекты модели и начать разрабатывать их.

WSDL2Java принимает URL-адрес WSDL и генерирует Java-клиент для этого WSDL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...