http1 jdk版,本来不想copy别人的,但是看到正好可以对比下,就弄过来了

转载 2016年08月30日 16:34:04

http://www.cnblogs.com/linjiqin/archive/2012/05/07/2488880.html

3.Java程序

复制代码
package junit;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;

import org.junit.Test;

public class JxSendSmsTest {

    /**
     * 获得腾讯QQ在线状态
     *
     * 输入参数:QQ号码 String,默认QQ号码:8698053。返回数据:String,Y = 在线;N = 离线;E = QQ号码错误;A = 商业用户验证失败;V = 免费用户超过数量
     * @throws Exception
     */
    @Test
    public void sendSms() throws Exception {
        String qqCode = "416501600";//qq号码
        String urlString = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
        String xml = JxSendSmsTest.class.getClassLoader().getResource("SendInstantSms.xml").getFile();
        String xmlFile=replace(xml, "qqCodeTmp", qqCode).getPath();
        String soapActionString = "http://WebXml.com.cn/qqCheckOnline";
        URL url = new URL(urlString);
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        File fileToSend = new File(xmlFile);
        byte[] buf = new byte[(int) fileToSend.length()];
        new FileInputStream(xmlFile).read(buf);
        httpConn.setRequestProperty("Content-Length", String.valueOf(buf.length));
        httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
        httpConn.setRequestProperty("soapActionString", soapActionString);
        httpConn.setRequestMethod("POST");
        httpConn.setDoOutput(true);
        httpConn.setDoInput(true);
        OutputStream out = httpConn.getOutputStream();
        out.write(buf);
        out.close();

        byte[] datas=readInputStream(httpConn.getInputStream());
        String result=new String(datas);
        //打印返回结果
        System.out.println("result:" + result);
    }

    /**
     * 文件内容替换
     * 
     * @param inFileName 源文件
     * @param from
     * @param to
     * @return 返回替换后文件
     * @throws IOException
     * @throws UnsupportedEncodingException
     */
    public static File replace(String inFileName, String from, String to)
            throws IOException, UnsupportedEncodingException {
        File inFile = new File(inFileName);
        BufferedReader in = new BufferedReader(new InputStreamReader(
                new FileInputStream(inFile), "utf-8"));
        File outFile = new File(inFile + ".tmp");
        PrintWriter out = new PrintWriter(new BufferedWriter(
                new OutputStreamWriter(new FileOutputStream(outFile), "utf-8")));
        String reading;
        while ((reading = in.readLine()) != null) {
            out.println(reading.replaceAll(from, to));
        }
        out.close();
        in.close();
        //infile.delete(); //删除源文件
        //outfile.renameTo(infile); //对临时文件重命名
        return outFile;
    }
    
    /**
     * 从输入流中读取数据
     * @param inStream
     * @return
     * @throws Exception
     */
    public static byte[] readInputStream(InputStream inStream) throws Exception{
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while( (len = inStream.read(buffer)) !=-1 ){
            outStream.write(buffer, 0, len);
        }
        byte[] data = outStream.toByteArray();//网页的二进制数据
        outStream.close();
        inStream.close();
        return data;
    }

}
复制代码

 4、SendInstantSms.xml文件如下,放在src目录下

复制代码
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <qqCheckOnline xmlns="http://WebXml.com.cn/">
      <qqCode>qqCodeTmp</qqCode>
    </qqCheckOnline>
  </soap:Body>
</soap:Envelope>
复制代码

setRequestProperty  设置的请求属性的信息。这个一般按规定设置就行了。

但是有时候最坑的是他说在信封里面要根据不同的业务做区分
<soap:Envelope  这里会有改变。

有时间再写池子的

JDK提供复制文件三种方式

利用I/O包的字节输入输出流public static void copyFileUsingStream(File src,File dest){ InputStream is = n...

关于WinCE6.0补丁包的一点说明(何老师写了,我就转载过来,本来我想自己写一下的。)

关于WinCE6.0补丁包的一点说明       以前整理过一篇《WinCE6.0 R3的安装步骤》,后来本本装了Win7后,按照这个步骤安装R3,又验证了一遍。当然,这个步骤是个人总结出的...

weblogic之部署 (正好用到,就粘贴过来保存一下,供大家一起查阅)

weblogic简介       BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterpr...

把不想让别人看到的应用都隐藏起来的方法

如果你想把不想让别人看到的应用都隐藏起来的话,那么接着往下看。 提示:该功能只适用于iPhone和iPod touch 步骤1:从App Store里下载免费的Picup。 步骤2:...

看了《小黄人》这么久却没看到这一层!真不想一辈子都当码农!

小黄人最先出现是在《卑鄙的我》当中,作为BOSS的下手存在着。而因为世界中对于小黄人的钟爱,影片《小黄人》为这群黄色小人立传,从时间的源头,黄色的单细胞生物开始,小黄人们经历了几个世纪。从霸王龙、埃及...

Java Web基础知识之Filter:过滤一切你不想看到的事情

不要相信客户端, 所以做后端的人都应该铭记的事情。因为前端传过来的数据并不总是合法和有效的,所以后端是对访问资源的最后一道保护伞。之前我们在Spring中说到过AOP编程,AOP基础知识,它就可以在执...
  • lmy86263
  • lmy86263
  • 2016年04月26日 23:03
  • 22826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:http1 jdk版,本来不想copy别人的,但是看到正好可以对比下,就弄过来了
举报原因:
原因补充:

(最多只允许输入30个字)