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添加头部验证信息"时,通常是指在发送SOAP(Simple Object Access Protocol)消息时,通过添加特定的头部信息来增强安全性与认证机制。在这种情况下,标签“TokenSoapHeader”暗示我们可能在...
本压缩包“C#Post带参数请求+WebService接口.zip”提供了关于如何使用C#进行POST请求并调用WebService接口的相关代码示例。下面我们将深入探讨这两个核心知识点。 1. **C# 带参数POST请求**: 当需要向服务器发送...
本文将详细探讨"访问WebService处理拦截开始访问的消息"这一主题,包括Web服务的工作原理、消息拦截的概念以及如何实现拦截开始访问的消息。 1. **Web服务的工作原理** Web服务基于SOAP(Simple Object Access ...
java webservice 接口客户端请求 xml、json格式请求代码 soapui模式 拿过去直接应用即可
1. **SOAP请求消息的构建**:在`accessService`方法中,通过`StringBuffer`来逐步构建SOAP请求消息,包括设置SOAP的命名空间、方法名以及参数等信息。 2. **HTTP请求的配置**:通过`PostMethod`对象来设置HTTP请求的...
4. 创建SOAP请求:构建SOAP请求的XML内容,通常需要一个`SoapEnvelope`类来封装请求头和正文。这可能涉及到使用如kxml2这样的库来生成XML。 5. 调用接口:使用Retrofit实例创建服务对象,然后调用接口方法发起请求。...
3. **发送HTTP请求**:封装好的SOAP消息以HTTP POST请求的方式发送到WebService的URL。HTTP协议提供了可靠的数据传输,保证了请求能够到达服务器。 4. **接收并解析SOAP响应**:服务器处理请求后,返回一个SOAP响应...
可以自定义错误消息,提供更具体的错误信息。 6. **源代码和注释**:提供的压缩包中可能包含了实现以上步骤的源代码,这些代码可能包括Web服务类、验证逻辑以及错误处理部分。通过阅读源代码和注释,可以更深入地...
### C# 开发WebService接口、请求HTTP接口及IIS发布服务详解 #### 一、概述 本篇将详细介绍如何利用C#与Visual Studio 2022开发WebService接口、请求HTTP接口并最终通过IIS发布服务的过程。我们将涵盖以下几个方面...
本篇文章将详细探讨如何使用Retrofit2、OkHttp3和RxJava这三个强大的库来构建一个Android客户端,以实现对SOAP WebService的调用。 首先,我们来看Retrofit2,这是一个由Square公司开发的类型安全的HTTP客户端。...
总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...
如果WebService使用SOAP协议,你需要构造SOAP请求消息并设置适当的HTTP头。SOAP消息通常包含一个XML结构,包括SOAP Envelope、Header和Body。使用如SAAJ(SOAP with Attachments API for Java)库可以更方便地处理...
3. 设置请求头,特别是对于POST请求,需要设置`Content-Type`以符合WebService接口的要求。 4. 如果需要发送数据,使用`send()`方法传递。 5. 注册事件监听器,处理响应。在`onreadystatechange`事件中,检查`...
通过发送SOAP请求并接收响应,你可以验证服务是否按预期工作。此外,还可以使用其他工具,如Postman或curl,进行更复杂的测试。 6. 客户端调用WebService: 要从客户端应用调用WebService,你需要使用生成的客户端...
【Ajax跨域请求WebService.asmx】是一个常见的Web开发技术应用场景,主要涉及到JavaScript的Ajax技术、C#编程语言以及ASP.NET的WebService组件。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的...
3. **设置请求头**:如果需要发送额外的HTTP头,可以使用`addRequestProperty()`方法。例如,设置Content-Type为`application/json`: ```java connection.setRequestProperty("Content-Type", "application/json; ...
通过以上步骤,我们可以使用`HttpWebRequest`成功地向WebService发送SOAP请求并接收响应。这种方式适用于那些不支持直接使用.NET Framework内置的`System.Web.Services`命名空间中提供的工具来进行WebService调用的...
标题中的“Eclipse通过工具来监控webService请求和返回时的数据”指的是在Eclipse集成开发环境中,使用特定的工具来观察和分析Web服务(webService)的请求和响应过程。这些工具可以帮助开发者更好地理解和调试Web...
例如,你可以创建一个处理支付请求的方法,如下所示: ```csharp [WebMethod] public bool ProcessPayment(string userId, decimal amount) { // 实现支付逻辑 } ``` `WebMethod`特性标记表示该方法可以被...