加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

soap

发布时间:2020-12-17 00:08:33 所属栏目:安全 来源:网络整理
导读:public class Client {private String ns = "http://{IP}:{端口}/axis/services/MessageService";//命名空间private String wsdlUrl = "http://{IP}:{端口}//axis/services/MessageService?wsdl";public static void main(String[] args) {ListString list =
public class Client {
	private String ns = "http://{IP}:{端口}/axis/services/MessageService";//命名空间
	private String wsdlUrl = "http://{IP}:{端口}//axis/services/MessageService?wsdl";

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("06913145");
		list.add("6491304323");
		list.add("324545316163");
		for(String phoneno : list){
			System.out.println(phoneno);
			System.out.println("--------------------------------");
			new Client().test(phoneno);
			System.out.println("--------------------------------");
		}
	//new Client().test("sdfsd");
	}

	public  void test(String phoneno){
		try{
			//1、创建服务(Service)
			URL url = new URL(wsdlUrl);
			QName sname = new QName(ns,"MessageServiceService");
			Service service = Service.create(url,sname);

			//2、创建Dispatch
			Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,"MessageService"),//portName,对应wsdl写。
			SOAPMessage.class,Service.Mode.MESSAGE);

			//3、创建SOAPMessage
			SOAPMessage msg = MessageFactory.newInstance().createMessage();
			SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
			SOAPBody body = envelope.getBody();

			//3.2、处理header信息
			SOAPHeader header = envelope.getHeader();
			if(header==null) header = envelope.addHeader();
			QName userName = new QName("blueslice.com","UserName","ns1");
			header.addHeaderElement(userName).setValue("admin");

			QName password = new QName("blueslice.com","Passwd","ns2");
			header.addHeaderElement(password).setValue("admin");

			//4、创建QName来指定消息中传递数据
			QName ename = new QName("http://webservice.blueslice.com","processTransaction");//<nn:add xmlns="xx"/>
				   String select = getSelectStr(phoneno);
			body.addBodyElement(ename).addTextNode(getSelectStr(phoneno));
			msg.writeTo(System.out);
			System.out.println("n invoking.....");

			//5、通过Dispatch传递消息,会返回响应消息
			SOAPMessage response = dispatch.invoke(msg);
			response.writeTo(System.out);
			SOAPBody ycBody = response.getSOAPBody();  
			Node ycResp = ycBody.getFirstChild(); 
			String res = ycResp.getTextContent();
			String error = ycResp.getAttributes().getNamedItem("error").getNodeValue();//error为0
			boolean isOK = res.contains("res error="0"");
			System.out.println(isOK);
		} catch (SOAPException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} 
}

	public String getUpdateStr(){
	省略。。。
	}

	public String getSelectStr(String phoneno){
	省略。。。

	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读