当前位置 : 主页 > 网页制作 > Nodejs >

WebService基础教程之三(通过UrlConnection调用WebService服务)

来源:互联网 收集:自由互联 发布时间:2021-06-24
使用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();
	}
}
网友评论