此博文对应的WebService服务端博文是 使用JDK发布一个简单的WebService 。
主要代码如下
package com.client.jdk;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* @author jackphang
* @date 2013-4-12
* @description 使用URLConnection访问WebService(通常用于Android应用)
*/
public class UrlConnectionClient {
/**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:1111/hello");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 是否有输入
conn.setDoInput(true);
// 是否有输出
conn.setDoOutput(true);
// POST请求
conn.setRequestMethod("POST");
// 重新设置请求头
conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
// 请求体
String value = "发送参数";
String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"com.pyy.mypackage\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
+ "<soapenv:Body> <q0:mySayHello><str>"
+ value
+ "</str> <age>11</age> </q0:mySayHello></soapenv:Body></soapenv:Envelope>";
OutputStream out = conn.getOutputStream();
out.write(soap.getBytes("UTF-8"));
// 返回的数据
InputStream in = conn.getInputStream();
int len = 0;
byte[] b = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((len = in.read(b)) != -1) {
builder.append(new String(b, 0, len, "UTF-8"));
}
System.out.println(builder.toString());
String respValue = builder.toString();
System.out.println("服务器返回的数据:" + respValue);
in.close();
out.close();
conn.disconnect();
}
}
URLConnection主要用于Android编程。