一、使用客户端调用方式
这里我使用eclipse生成webservice client调用,如下图
通过这个代理类获取手机号的归属地
二、使用HTTPURLConnection的方式
package com.test;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.Buffer;
public class HttpMobile {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
URL url=new URL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl");
//获取连接对象
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
// conn.setRequestProperty("content-type", "text/xml;charset=utf-8");
conn.setRequestProperty("content-type", "text/xml;charset=utf-8");
//打开输入、输出权限
conn.setDoInput(true);
conn.setDoOutput(true);
//获取输出流对象
OutputStream os=conn.getOutputStream();
//写入数据
os.write(getXML("13640979319").getBytes());
//获取响应码
StringBuffer sb=new StringBuffer();
int responseCode=conn.getResponseCode();
if(responseCode==200) {
System.out.println("OK");
InputStream is=conn.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str="";
while((str=br.readLine())!=null) {
sb.append(str);
}
System.out.println(sb);
}
}
public static String getXML(String phone) {
String xml="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://WebXml.com.cn/\">"
+"<soapenv:Header/>"
+"<soapenv:Body>"
+"<web:getMobileCodeInfo>"
+" <web:mobileCode>"
+phone
+"</web:mobileCode>"
+"</web:getMobileCodeInfo>"
+"</soapenv:Body>"
+"</soapenv:Envelope>";
return xml;
}
}