`
zwhc
  • 浏览: 262794 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

电信彩信附件,webservice HttpURLConnection

    博客分类:
  • java
阅读更多
电信彩信附件,webservice HttpURLConnection

原先用 gSOAP 开发过一个,所发送的彩信(电信),附件中的图片可以打开。
生产环境中必须用 java,用 axis 开发出来的,所发送的彩信,附件中的图片无法打开。

解决方式:
1、用 wireshark 抓取正常的彩信包;
2、用 HttpURLConnection 直接发送:

    private void testMMS(String boundary, String start, byte[] requestData) throws Exception{
    	HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setUseCaches(false);
        connection.setDoOutput(true);
        connection.setDoInput(true);

        connection.setRequestProperty("User-Agent", "kSOAP/2.0");
        connection.setRequestProperty("SOAPAction", "");
        connection.setRequestProperty("Content-Type", "multipart/related; charset=utf-8; " +
        		"boundary=\""+boundary+"\"; " +
        		"type=\"text/xml\"; start=\"<"+start+">\"");
        connection.setRequestProperty("Connection", "close");
        connection.setRequestProperty("Content-Length", "" + requestData.length);
        connection.setRequestMethod("POST");
        connection.connect();
        OutputStream os = connection.getOutputStream();
        System.out.println( "245_requestData.length:" + requestData.length );
        os.write(requestData, 0, requestData.length);
        os.flush();
        os.close();

        requestData = null;
        InputStream is;
        try {
            connection.connect();
            is = connection.getInputStream();
        } catch (IOException e) {
        	e.printStackTrace();
            is = connection.getErrorStream();
            System.out.println("is:" + is);
            if (is == null) {
                connection.disconnect();
                throw (e);
            }
        }
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[256];
        while (true) {
            int rd = is.read(buf, 0, 256);
            if (rd == -1)
                break;
            bos.write(buf, 0, rd);
        }
        bos.flush();
        buf = bos.toByteArray();
        responseDump = new String(buf);
        System.out.println("responseDump:" + responseDump);

        is.close();
        is = new ByteArrayInputStream(buf);
    }


这段代码,是从 kSOAP 里扒出来的。

在研究过程中,因为对 webservice 的附件不太了解,还参考了 axis 的源码。
0
2
分享到:
评论

相关推荐

    GSM手机彩信webservice

    GSM手机彩信WebService是一种基于Web服务技术,用于在GSM(Global System for Mobile Communications,全球移动通信系统)网络中发送和接收多媒体信息的服务。这种服务允许用户通过互联网与GSM手机之间进行交互,...

    彩信协议Webservice

    ### 彩信协议Webservice知识点解析 #### 一、彩信协议Webservice概览 **彩信协议Webservice**是一种面向企业的技术规范,用于描述如何通过Web服务接口实现彩信的发送与接收等功能。该规范由中国电信制定,旨在为...

    HttpURLConnection调用.net WebService

    在这个场景下,我们将探讨如何利用`HttpURLConnection`来调用.NET平台上的WebService服务。 **一、HttpURLConnection简介** `HttpURLConnection`是Java `java.net`包中的一个类,它提供了HTTP协议的连接、读写功能...

    使用WebService上传一个附件或者多个附件的实现方式

    在本文中,我们将深入探讨如何使用WebService来上传一个或多个附件,特别是处理大附件的情况。这一主题对于构建分布式系统、实现跨平台文件共享以及在不同应用间传递数据至关重要。 首先,让我们理解什么是...

    HttpUrlConnection请求WebService.rar

    本教程主要探讨如何使用HttpURLConnection来访问WebService。 首先,让我们理解什么是WebService。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的,可以被不同平台和编程语言之间进行交互的服务。它们通过...

    HttpURLConnection获取webService上的值

    在本篇内容中,我们将深入探讨如何利用HttpURLConnection来获取Web Service上的数据,以及如何解析返回的XML节点,这部分将涉及W3C标准的XML解析方法。 首先,让我们了解HttpURLConnection的基本用法。...

    使用Webservice实现大容量附件上传

    Web服务(Webservice)是一种跨平台、跨语言的通信协议,它允许不同系统之间的应用程序进行交互。本文将深入探讨如何利用Web服务来实现大容量附件的上传。 一、Web服务简介 Web服务基于XML(Extensible Markup ...

    使用Http post的方式调用webservice

    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "application/x-...

    WEBSERVICE 电信短信系统

    这里提到的“WEBSERVICE 电信短信系统”是指通过WebService技术与电信运营商的短信服务接口进行对接,以实现从JAVA客户端发送短信的功能。这个系统的关键在于JAVA客户端如何正确地调用WebService接口来完成短信的...

    21.集成开发需求方案附件二:OA系统工作流WebService接口使用说明.doc

    泛微OA系统是一款广泛应用于企业办公自动化的工作流管理系统,它提供了强大的WebService接口,使得外部系统可以方便地与其进行数据交互和流程控制。本说明文档详细介绍了如何使用这些接口,包括检查部署状态、调用...

    PHP webservice传输附件和文章源码

    在这个特定的情况下,我们关注的是一个PHP WebService,它涉及到文章和附件的传输。 首先,让我们深入了解PHP WebService的基本原理。WebService是一种通过网络进行通信的软件系统,遵循标准的协议和规范,如SOAP...

    带附件的webservice

    ### 带附件的Webservice知识点详解 #### 一、Webservice简介与概念 Web服务是一种跨编程语言和操作系统平台的、通过网络提供服务的方法。它通常使用HTTP协议进行通信,利用XML作为数据交换格式。Webservice允许不同...

    Flex+WebService附件上传下载

    本教程将探讨如何利用Flex作为前端客户端,通过WebService进行附件的上传和下载操作。 Flex是一款由Adobe开发的开源框架,主要用于创建交互式的、基于Flash Player或Adobe AIR的RIA。它提供了丰富的用户界面组件库...

    webservice摘录webservice摘录

    webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录质

    java android 调用webservice

    本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...

    WebService教程+实例+代码提示功能WebService实例.rar

    这个"WebService教程+实例+代码提示功能WebService实例.rar"压缩包文件显然包含了关于WebService的学习资料、实例代码和可能的代码提示功能,旨在帮助用户深入理解和实践WebService的开发。 首先,"教程地址.txt"很...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    webservice接口一个或多个附件上传

    本话题将深入探讨如何通过WebService接口实现一个或多个附件的上传功能。 首先,让我们理解WebService的基本原理。WebService是一个自包含、自描述的应用程序,它可以被其他应用程序通过网络调用,不受平台限制。...

    Android通过webservice连接Sqlserver实例

    1. 调用WebService:使用Android的网络API(如HttpURLConnection)或者Retrofit等库,构造请求URL,携带必要的参数(如SQL查询语句),向服务器发送请求。 2. 数据解析:收到服务器返回的XML或JSON响应后,使用如DOM...

    Idea实现WebService实例

    【标题】:Idea实现WebService实例 在Java开发中,WebService是一种常见的跨平台、跨语言的通信方式,它允许不同的应用程序之间交换数据。IntelliJ IDEA(简称Idea)是广受欢迎的Java集成开发环境,提供了强大的...

Global site tag (gtag.js) - Google Analytics