使用UrlConnection调用WebService服务与上篇博文中的通过Ajax调用WebService服务的原理是一样的,只不过一个是js代码,一个是java代码而已。 直接上代码: package cn.itcast.ws.urlConnection;import jav
使用UrlConnection调用WebService服务与上篇博文中的通过Ajax调用WebService服务的原理是一样的,只不过一个是js代码,一个是java代码而已。
直接上代码:
package cn.itcast.ws.urlConnection; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; /** * 通过UrlConnection调用WebService服务 * @author pengdi * */ public class App { public static void main(String[] args) throws Exception { //服务的地址 URL wsUrl = new URL("http://localhost:6767/hello"); HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection(); //有输入 conn.setDoInput(true); //有输出 conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); OutputStream os = conn.getOutputStream(); String param1 = "qwer"; String soap = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' " + "xmlns:q0='http://ws.itcast.cn/' " + "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " + "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" + "<soapenv:Body>" + "<q0:sayHrllo>" + "<arg0>" + param1 + "</arg0>" + "</q0:sayHrllo>" + "</soapenv:Body>" + "</soapenv:Envelope>"; os.write(soap.getBytes()); InputStream is = conn.getInputStream(); byte[] b = new byte[1024]; int len = 0; String s = ""; while ((len = is.read(b)) != -1) { String ss = new String(b, 0, len, "UTF-8"); s+=ss; } System.out.println(s); is.close(); os.close(); conn.disconnect(); } }