Consuming SOAP Webservice in Android using HttpUrlConnection.
Create a class like below. Please make sure to call this function in background Thread/AsyncTask/Service.
ServiceResponse.java
==================
Create a class like below. Please make sure to call this function in background Thread/AsyncTask/Service.
ServiceHandler.java
====================
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 75 76 77 78 79 80 81 82 83 84 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; /** * Created by pratap.kesaboyina on 07-05-2016. */ public class ServiceHandler { /* requestUrl= endpoint methodName = namespace+ServiceMethodName soapxml= soap xml string */ public static ServiceResponse soapWebServiceRequest(String requestUrl, String methodName, String soapBody) { ServiceResponse serviceResponse = new ServiceResponse(); URL oURL = null; InputStream inputStream = null; try { oURL = new URL(requestUrl); HttpURLConnection con = (HttpURLConnection) oURL.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-type", "text/xml; charset=utf-8"); con.setRequestProperty("SOAPAction", methodName); OutputStream reqStream = con.getOutputStream(); reqStream.write(soapBody.getBytes()); // if 200 , then proceed int statusCode = con.getResponseCode(); if (statusCode == 200) { inputStream = con.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line = ""; String result = ""; while ((line = bufferedReader.readLine()) != null) { result += line; } /* Close Stream */ if (null != inputStream) { inputStream.close(); } serviceResponse.setIsSuccessOrFail(true); serviceResponse.setXmlResponse(result); } else { serviceResponse.setIsSuccessOrFail(false); serviceResponse.setXmlResponse("Error in Connection"); } } catch (MalformedURLException e) { e.printStackTrace(); serviceResponse.setIsSuccessOrFail(false); serviceResponse.setXmlResponse("Error in Connection"); } catch (ProtocolException e) { e.printStackTrace(); serviceResponse.setIsSuccessOrFail(false); serviceResponse.setXmlResponse("Error in Connection"); } catch (IOException e) { e.printStackTrace(); serviceResponse.setIsSuccessOrFail(false); serviceResponse.setXmlResponse("Error in Connection"); } return serviceResponse; } } |
ServiceResponse.java
==================
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 | ** * Created by pratap.kesaboyina on 26-08-2015. */ public class ServiceResponse { // is request failed/sucess private boolean isSuccessOrFail; // if request success then xmlResponse else contains error msg private String xmlResponse; public ServiceResponse() { } public ServiceResponse(boolean isSuccessOrFail, String xmlResponse) { this.isSuccessOrFail = isSuccessOrFail; this.xmlResponse = xmlResponse; } public void setIsSuccessOrFail(boolean isSuccessOrFail) { this.isSuccessOrFail = isSuccessOrFail; } public boolean isSuccessOrFail() { return isSuccessOrFail; } public String getXmlResponse() { return xmlResponse; } public void setXmlResponse(String xmlResponse) { this.xmlResponse = xmlResponse; } } |
No comments:
Post a Comment