`
leo123456
  • 浏览: 13363 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

webservice带消息头的请求写法

阅读更多
package org.test;

import java.net.MalformedURLException;
import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.xml.rpc.ServiceException;
import javax.xml.soap.SOAPException;

import org.apache.axis.message.SOAPHeaderElement;
import org.apache.axis.types.URI.MalformedURIException;

import cn.com.chinatelecom.util.MD5;
import cn.com.chinatelecom.www.schema.ctcc.terminal_location.v2_1.LocationInfo;
import cn.com.chinatelecom.www.wsdl.ctcc.terminal_location.v2_1._interface.TerminalLocation;
import cn.com.chinatelecom.www.wsdl.ctcc.terminal_location.v2_1.service.TerminalLocationBindingStub;
import cn.com.chinatelecom.www.wsdl.ctcc.terminal_location.v2_1.service.TerminalLocationServiceLocator;


public class TerminalLocationTest {

	public LocationInfo getLoc() {
		String webserviceurl = "http://58.53.194.143:9081/TerminalLocationService";
		String SPID = "18100152"; // SPID "18100153"; "18100152"
		String Token = "whtyxsgj"; // 密钥 "9731D853835EF670292F1AFD524AB90C"; "whtyxsgj"
		String timeStamp = "2010101100";
		String DestNum = "tel:18986262090"; // 发送号码 "tel:13387559210" "tel:18986262090"
		//String ProductID = "1350190202012345603"; // 产品编号
		//String ServiceID = "21位的业务编号,2开头"; // 业务编号
		//String TimeStamp = dateString(); // 当前时间
		//String senderName = "10620000"; // 短信主叫号码,在浙江ISAG实际无效,ISAG会读
		int requestedAccuracy = 300;
		int acceptableAccuracy = 300;
               //http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1
		SOAPHeaderElement SoapHeader = new SOAPHeaderElement(
				"http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1",
				"RequestSOAPHeader");

		LocationInfo locInfo = null;
		try {
			/* 初始化Web Service Client */
			TerminalLocationServiceLocator tlsl = new TerminalLocationServiceLocator();
			tlsl.setTerminalLocationEndpointAddress(webserviceurl);
			TerminalLocation tl = tlsl.getTerminalLocation(new java.net.URL(webserviceurl));
			/* 设置SOAP Header */
			SoapHeader.addChildElement("spId").addTextNode(SPID); // SpID
			SoapHeader.addChildElement("timeStamp").addTextNode(timeStamp);
			String spPwd = (SPID + Token + timeStamp).trim();
			String md5Encry = MD5.compile(spPwd).toUpperCase();// MD5加密
			SoapHeader.addChildElement("spPassword").addTextNode(md5Encry);// 
			SoapHeader.addChildElement("FA").addTextNode(DestNum);
			SoapHeader.addChildElement("OA").addTextNode(DestNum);
			SoapHeader.addChildElement("multicastMessaging").addTextNode("false");
//			SoapHeader.addChildElement("productId").addTextNode(ProductID);
//			SoapHeader.addChildElement("multiFlag").addTextNode("1");
//			SoapHeader.addChildElement("protoFlag").addTextNode("4");
//			SoapHeader.addChildElement("cmdId").addTextNode("1");
//			SoapHeader.addChildElement("updown").addTextNode("1");
//			SoapHeader.addChildElement("dlgIndex").addTextNode("-1");
//			SoapHeader.addChildElement("ReqId").addTextNode("1918010D100917090943000477E");
//			SoapHeader.addChildElement("SpIp").addTextNode("58.53.194.148");
//			SoapHeader.addChildElement("scsId").addTextNode("1222");
//			SoapHeader.addChildElement("multiAll").addTextNode("1");
//			SoapHeader.addChildElement("multiCur").addTextNode("1");
//			SoapHeader.addChildElement("sp_flux").addTextNode("1");
//			SoapHeader.addChildElement("app_flux").addTextNode("1");
			

			((TerminalLocationBindingStub) tl).setHeader(SoapHeader); // 添加SOAP头
			/* 设置被叫号码 */
			org.apache.axis.types.URI address = new org.apache.axis.types.URI();
			address = new org.apache.axis.types.URI(DestNum);

			/* 发送短信 */
			System.out.println("starting getLoc>>>>>>>>>>>>>>>>>>");
			locInfo = tl.getLocation(address, requestedAccuracy,acceptableAccuracy);
			System.out.println("ending getLoc>>>>>>>>>>>>>>>>>>");
			System.out.println("Latitude: " + locInfo.getLatitude() + "\n"
					+ "Longitude: " + locInfo.getLongitude());
			
		} catch (cn.com.chinatelecom.www.schema.ctcc.common.v2_1.ServiceException e) {
			// 鉴权失败
			System.out.println("ServiceException is happened>>>>>>>");
			System.out.println("MessageId:" + e.getMessageId());
			System.out.println("Text:" + e.getText());
//			String[] variables = e.getVariables();
//			for (int i = 0; i < variables.length; i++) {
//				System.out.println("Variable:" + variables[i]);
//			}
		} catch (cn.com.chinatelecom.www.schema.ctcc.common.v2_1.PolicyException e) {
			System.out.println("PolicyException is happened>>>>>>>");
			System.out.println("MessageId:" + e.getMessageId());
			System.out.println("Text:" + e.getText());
			e.printStackTrace();
//			String[] variables = e.getVariables();
//			for (int i = 0; i < variables.length; i++) {
//				System.out.println("Variable:" + variables[i]);
//			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (ServiceException e) {
			e.printStackTrace();
		} catch (SOAPException e) {
			e.printStackTrace();
		} catch (MalformedURIException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("Text:" + e.getMessage());
		}
		return locInfo;
	}
	private static String dateString() {
		SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss");
		return sdf.format(new Date());
	}
	private static String getTimeStamp() {
		SimpleDateFormat sdf = new SimpleDateFormat("MMDDHHMMSS");
		return sdf.format(new Date());
	}
	public static void main(String[] args) {
		new TerminalLocationTest().getLoc();
		//System.out.println(getTimeStamp());
		//System.out.println(dateString());
	}
}

 

分享到:
评论

相关推荐

    webservice 安全认证请求头信息

    标题“WebService安全认证请求头信息”直指问题的核心,即在调用WebService时,如何通过请求头来传递必要的安全凭证,以验证客户端的身份。这通常涉及到身份验证、授权以及加密等安全机制。 首先,让我们了解...

    WebService 添加头部验证信息

    当我们谈论"WebService添加头部验证信息"时,通常是指在发送SOAP(Simple Object Access Protocol)消息时,通过添加特定的头部信息来增强安全性与认证机制。在这种情况下,标签“TokenSoapHeader”暗示我们可能在...

    C#Post带参数请求+WebService接口.zip

    本压缩包“C#Post带参数请求+WebService接口.zip”提供了关于如何使用C#进行POST请求并调用WebService接口的相关代码示例。下面我们将深入探讨这两个核心知识点。 1. **C# 带参数POST请求**: 当需要向服务器发送...

    访问WebService处理拦截开始访问的消息

    本文将详细探讨"访问WebService处理拦截开始访问的消息"这一主题,包括Web服务的工作原理、消息拦截的概念以及如何实现拦截开始访问的消息。 1. **Web服务的工作原理** Web服务基于SOAP(Simple Object Access ...

    httpClient调用webservice接口

    1. **SOAP请求消息的构建**:在`accessService`方法中,通过`StringBuffer`来逐步构建SOAP请求消息,包括设置SOAP的命名空间、方法名以及参数等信息。 2. **HTTP请求的配置**:通过`PostMethod`对象来设置HTTP请求的...

    客户端调用webservice方式一(soap请求)

    3. **发送HTTP请求**:封装好的SOAP消息以HTTP POST请求的方式发送到WebService的URL。HTTP协议提供了可靠的数据传输,保证了请求能够到达服务器。 4. **接收并解析SOAP响应**:服务器处理请求后,返回一个SOAP响应...

    C#webservice应用例子(含头验证)

    可以自定义错误消息,提供更具体的错误信息。 6. **源代码和注释**:提供的压缩包中可能包含了实现以上步骤的源代码,这些代码可能包括Web服务类、验证逻辑以及错误处理部分。通过阅读源代码和注释,可以更深入地...

    CXF WebService带有拦截器

    总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...

    C# 开发webservice接口、请求HTTP接口、iis发布服务

    ### C# 开发WebService接口、请求HTTP接口及IIS发布服务详解 #### 一、概述 本篇将详细介绍如何利用C#与Visual Studio 2022开发WebService接口、请求HTTP接口并最终通过IIS发布服务的过程。我们将涵盖以下几个方面...

    Android Retrofit2+Okhttp3+Rxjava通过SOAP协议请求WebService

    本篇文章将详细探讨如何使用Retrofit2、OkHttp3和RxJava这三个强大的库来构建一个Android客户端,以实现对SOAP WebService的调用。 首先,我们来看Retrofit2,这是一个由Square公司开发的类型安全的HTTP客户端。...

    Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService.zip

    4. 创建SOAP请求:构建SOAP请求的XML内容,通常需要一个`SoapEnvelope`类来封装请求头和正文。这可能涉及到使用如kxml2这样的库来生成XML。 5. 调用接口:使用Retrofit实例创建服务对象,然后调用接口方法发起请求。...

    ajax跨域请求调用webservice接口+视频教程

    3. 设置请求头,特别是对于POST请求,需要设置`Content-Type`以符合WebService接口的要求。 4. 如果需要发送数据,使用`send()`方法传递。 5. 注册事件监听器,处理响应。在`onreadystatechange`事件中,检查`...

    WebService Axis初学者

    通过发送SOAP请求并接收响应,你可以验证服务是否按预期工作。此外,还可以使用其他工具,如Postman或curl,进行更复杂的测试。 6. 客户端调用WebService: 要从客户端应用调用WebService,你需要使用生成的客户端...

    WebService_xmlorjson.java java webservice 接口客户端请求 xml、json格式请求代码

    java webservice 接口客户端请求 xml、json格式请求代码 soapui模式 拿过去直接应用即可

    HttpUrlConnection请求WebService.rar

    3. **设置请求头**:如果需要发送额外的HTTP头,可以使用`addRequestProperty()`方法。例如,设置Content-Type为`application/json`: ```java connection.setRequestProperty("Content-Type", "application/json; ...

    c# httpwebrequest调用webservice demo

    通过以上步骤,我们可以使用`HttpWebRequest`成功地向WebService发送SOAP请求并接收响应。这种方式适用于那些不支持直接使用.NET Framework内置的`System.Web.Services`命名空间中提供的工具来进行WebService调用的...

    在WinForm程序中调用WebService

    例如,你可以创建一个处理支付请求的方法,如下所示: ```csharp [WebMethod] public bool ProcessPayment(string userId, decimal amount) { // 实现支付逻辑 } ``` `WebMethod`特性标记表示该方法可以被...

    Eclipse通过工具来监控webService请求和返回时的数据

    标题中的“Eclipse通过工具来监控webService请求和返回时的数据”指的是在Eclipse集成开发环境中,使用特定的工具来观察和分析Web服务(webService)的请求和响应过程。这些工具可以帮助开发者更好地理解和调试Web...

    使用Http post的方式调用webservice

    如果WebService使用SOAP协议,你需要构造SOAP请求消息并设置适当的HTTP头。SOAP消息通常包含一个XML结构,包括SOAP Envelope、Header和Body。使用如SAAJ(SOAP with Attachments API for Java)库可以更方便地处理...

    PB (代理)如何http 请求访问webservice接口(SOAP接口)

    该程序已经调试通过,读者可以借鉴该代码,不一定能满足需求,需要自己动手改造,如需调试请参考帮助文档

Global site tag (gtag.js) - Google Analytics