Я сталкиваюсь с большими трудностями при использовании запроса Soap в моем приложении для Android. Использую библиотеку Ksoap2. Я уже написал об этом пост, где вы можете увидеть мой код здесь
Я пытаюсь изменить свою константу следующим образом:
public final static String SOAP_ACTION = "http://xmlns.oracle.com/orawsv/USER/WSS_USER_CLI/GETARTICLE/";
public final static String NAME_SPACE = "http://xmlns.oracle.com/orawsv/USER/WSS_USER_CLI/GETARTICLE";
public final static String URL = "https://xxx.xxx.xxx.xxx:1443/orawsv/USER/WSS_USER_CLI/GETARTICLE?wsdl";
public final static String GET_ARTICLE_METHOD_NAME = "GETARTICLE";
public final static String GET_ARTICLE_SOAP_ACTION = SOAP_ACTION + GET_ARTICLE_METHOD_NAME;
Но теперь у меня такое сообщение об ошибке:
> 07-13 11:17:33.163 3355-4210/com.ablinfo.mweb W/System.err: org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <definitions name='GETARTICLE' targetNamespace='http://xmlns.oracle.com/orawsv/USER/WSS_USER_CLI/GETARTICLE'>@6:56 in java.io.InputStreamReader@b3b2c69)
07-13 11:17:33.164 3355-4210/com.ablinfo.mweb W/System.err: at org.kxml2.io.KXmlParser.require(KXmlParser.java:2065)
at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:128)
at org.ksoap2.transport.Transport.parseResponse(Transport.java:129)
at org.ksoap2.transport.HttpTransportSE.parseResponse(HttpTransportSE.java:301)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:274)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
at com.ablinfo.mweb.service.WebServiceCall.callWSThreadSoapPrimitive(WebServiceCall.java:62)
at com.ablinfo.mweb.service.GetArticleTask.doInBackground(GetArticleTask.java:36)
07-13 11:17:33.165 3355-4210/com.ablinfo.mweb W/System.err: at com.ablinfo.mweb.service.GetArticleTask.doInBackground(GetArticleTask.java:11)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Спасибо за ваш ответ. Я пытаюсь использовать httpClient, но у меня возникает ошибка «: Ошибка при отправке запроса SOAP javax.net.ssl.SSLHandshakeException: Не удалось выполнить рукопожатие.» Я думаю, что это проблема с HTTPS. Как я могу решить эту проблему?
Как я могу проверить, что мои параметры верны для SOAP? Я думаю, что мои значения NAMESPACE, ACTION, METHOD и URL неверны.
если вы хотите использовать мой способ кодирования, вам нужно просто использовать библиотеку httpclient и httpcore и ksoap2 android library ... а для soapAction и url вы можете проверить свой xml или обсудить с вашей поддерживаемой командой .. они скажут вы именно то, что должно быть SoapAction, а URL-адрес должен ... вам нужно просто следовать моему способу кодирования, и вы обязательно получите результат.
Я разместил свой код, следуя вашему способу кодирования.




У меня такая же проблема, вы можете увидеть мой полный ответ stackoverflow.com/questions/51255957/…