1 package cn.itcast.service.urlconnection; 2 3 import java.io.InputStream; 4 import java.io.OutputStream; 5 import java.net.HttpURLConnection; 6 import java.net.URL; 7 import java.net.URLConnection; 8 9 /** 10 * 通过UrlConnection调用Webservice服务 11 * 12 * @author13 * 14 */ 15 public class App { 16 public static void main(String[] args) throws Exception { 17 // 指定webservice服务的请求地址 18 String wsUrl = "http://192.168.1.108:5678/hello"; 19 URL url = new URL(wsUrl); 20 URLConnection conn = url.openConnection(); 21 HttpURLConnection con = (HttpURLConnection) conn; 22 // 设置请求方式 23 con.setDoInput(true); 24 con.setDoOutput(true); 25 con.setRequestMethod("POST"); 26 con.setRequestProperty("content-type", "text/xml;charset=UTF-8"); 27 28 // 手动构造请求体 请求体通过 httpwatch eclipse tcp/ip工具 还要myeclipse调用wsdl的 查看请求信息 可以获取 29 String requestBody = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " 30 + " xmlns:q0=\"http://service.itcast.cn/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema \" " 31 + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" 32 + "<soapenv:Body><q0:sayHello><arg0>lisi</arg0> <arg1>10</arg1> </q0:sayHello></soapenv:Body></soapenv:Envelope>"; 33 34 //获得输出流 35 OutputStream out = con.getOutputStream(); 36 out.write(requestBody.getBytes()); 37 38 out.close(); 39 40 int code = con.getResponseCode(); 41 if(code == 200){//服务端返回正常 42 InputStream is = con.getInputStream(); 43 byte[] b = new byte[1024]; 44 StringBuffer sb = new StringBuffer(); 45 int len = 0; 46 while((len = is.read(b)) != -1){ 47 String str = new String(b,0,len,"UTF-8"); 48 sb.append(str); 49 } 50 System.out.println(sb.toString()); 51 is.close(); 52 } 53 con.disconnect(); 54 } 55 }