通过UrlConnection调用Webservice服务

package com.lvshitech.url;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 通过UrlConnection调用Webservice服务
 */
public class UrlConnection {
	public static void main(String[] args) throws IOException {
		// 服务的地址
		URL url = new URL("http://127.0.0.1:6789/hello");
		// 打开链接
		HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
		// 可读可写,请求方式,请求类型
		httpURLConnection.setDoInput(true);
		httpURLConnection.setDoOutput(true);
		httpURLConnection.setRequestMethod("POST");
		httpURLConnection.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
		// 输出
		OutputStream outputStream = httpURLConnection.getOutputStream();
		String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\""
				+ "xmlns:q0=\"http://webservice.lvshitech.com/\""
				+ "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
				+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" 
				+ "<soapenv:Body><q0:sayHello><arg0>"
				+ "Peter"
				+ "</arg0></q0:sayHello></soapenv:Body></soapenv:Envelope>";
		outputStream.write(soap.getBytes());
		// 输入
		InputStream inputStream = httpURLConnection.getInputStream();
		byte []input = new byte[1024];
		int len = 0;
		String readStr = "";
		while((len=inputStream.read(input)) != -1) {
			readStr += new String(input, 0, len, "UTF-8");
		}
		System.out.println(readStr);
		// 关闭流
		inputStream.close();
		outputStream.close();
		httpURLConnection.disconnect();
	}
}

报错:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 500 for URL: http://127.0.0.1:6789/hello
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
	at com.lvshitech.url.UrlConnection.main(UrlConnection.java:34)

原因:

请求头有错,xmlns:节点前漏了空格

补上空格:

在运行:

输出:

<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:sayHelloResponse xmlns:ns2="http://webservice.lvshitech.com/"><return>Hello Peter</return></ns2:sayHelloResponse></S:Body></S:Envelope>

 

posted @ 2018-03-14 13:19  半生戎马,共话桑麻、  阅读(180)  评论(0)    收藏  举报
levels of contents