Below code shows sample code to invoke Web Service Using basic java.net package.
InvokeService.java
InvokeService.java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
*
* @author Tejas Purohit
*/
public class InvokeService {
public InvokeService() {
}
public static void main(String[] args) {
// Setting Proxy Settings If Applicable, Consider below commented code
// if you are working behind the proxy to access any web service.
/*
System.setProperty("proxySet", "true");
System.setProperty("http.proxyHost", "192.168.1.100");
System.setProperty("http.proxyPort", "8080");
System.setProperty("http.proxyUser", "ProxyUser");
System.setProperty("http.proxyPassword", "ProxyPassword");
*/
// Web Service URL
String url = "http://www.myapp.com/mywebservice/invoke";
// SOAPAction
String action = "http://www.myapp.com/mywebservice/action";
// SOAPMessage
String reqMessage = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><Request><Emp><EmpNo>10</EmpNo><EmpName>Tejas Purohit</EmpName><EmpDesignation>Developer</EmpDesignation></Emp></Request></soap:Body></soap:Envelope>";
InvokeService invokeService = new InvokeService();
String res = invokeService.invoke(url, reqMessage, action);
// Displaying Response
System.out.println(res);
}
public String invoke(String strURL, String soapMessage, String soapAction) {
String resMessage = null;
try {
// Initializing Connection with default properties
URL url = new URL(strURL);
HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
urlCon.setAllowUserInteraction(true);
urlCon.setDoOutput(true);
urlCon.setDoInput(true);
urlCon.setConnectTimeout(2000); // Setting Connection Timeout
urlCon.setReadTimeout(2000); // Setting Read Timeout
urlCon.setRequestProperty("Action", soapAction); // Setting SOAP Action
urlCon.setRequestProperty("Content-Type", "text/xml"); // Setting Content Type
urlCon.connect();
// Openoutput stream and writting SOAPRequest Message
OutputStream out = urlCon.getOutputStream();
out.write(soapMessage.getBytes());
out.flush();
out.close();
// Reading InputStream
InputStream dataInputStream;
if (urlCon.getResponseCode() == HttpURLConnection.HTTP_OK) {
dataInputStream = urlCon.getInputStream();
} else {
dataInputStream = urlCon.getErrorStream();
}
resMessage = readInputStream(dataInputStream);
dataInputStream.close();
// Disconnecting
urlCon.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return resMessage;
}
private String readInputStream(InputStream in) throws IOException {
StringBuffer sb = new StringBuffer();
int avail = in.available();
while (avail > 0) {
byte[] availBytes = new byte[avail];
in.read(availBytes);
sb.append(new String(availBytes));
avail = in.available();
}
return sb.toString();
}
}
Comments
Post a Comment
Is this content helpful? Leave appreciation, feedback, suggestions, issues anything.