IO流、HttpClient、GET方式请求MT发送短信

来源:互联网 发布:python实现软件license 编辑:程序博客网 时间:2024/06/09 23:52
/* *文件名:HttpClientTest.java *描  述:描述类文件的作用与职责 *版  权:长沙江泓信息技术有限公司 Copyright (c) 2009-2013,All Rights Reserved. *创建者:向洁 *修改者:向洁 */package org.xiangjie.mt.get;import java.io.IOException;import java.net.URLEncoder;import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpStatus;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.params.HttpMethodParams;import org.dom4j.DocumentHelper;import org.dom4j.Element;/** * @Description (商信通HttpClient,GET方式请求demo) * @author   向洁 * @version  JOHOM V1.0 * @Date 2013-8-31-下午2:46:33 * @see   */public class HttpClientGet {  public static void main(String [] args) throws Exception{    /*创建httpclinet对象,并设置参数 */   HttpClient httpclient = new HttpClient();    //设置 Http连接超时为15秒   httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);       String encoding = "GBK";                                       //设置编码格式为GBK           String content = URLEncoder.encode("今晚打老虎",encoding);  //短信内容      /*通过get方式请求参数   *user,用户名称   *pwd,  用户密码   *channel,系统为你分配的通道    *phonelist,手机号码串   *content,信息内容   */  GetMethod getMethod = new GetMethod("请求地址user=用户名&pwd=密码&channel=通道&phonelist=号码串&cont="+内容);    /*创建getMethod对象,并设置参数 */   getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 15000);  //设置 get请求超时为 15 秒   getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,   new DefaultHttpMethodRetryHandler());    //使用系统提供默认的重试处理,求三次     /*扑捉异常*/  try{   /*执行 HTTP,GET请求 */    int statusCode = httpclient.executeMethod(getMethod);      /*判断访问的状态码 */    if (statusCode != HttpStatus.SC_OK) {   System.err.println("Method failed: "+ getMethod.getStatusLine());   }      /*处理 HTTP,返回内容 */   byte [] responseBody = getMethod.getResponseBody(); //读取字节数组      /*将回执保存到字符串str*/   String str = new String (responseBody,encoding);   System.out.println(str);      /*解析XML文件*    *方式一,DocumentHelper 方式解析    *方式二,SAXReader 方式解析     */   Element root = DocumentHelper.parseText(str).getRootElement();      if("1".equalsIgnoreCase(root.elementTextTrim("status"))){       System.out.println("回执结果" + root.elementTextTrim("status"));   System.out.println("成功");         }else{   System.out.println("失败");   System.out.println("错误原因:"+root.elementTextTrim("error"));   System.out.println("发送序列号:"+root.elementTextTrim("seq"));   }    }catch (HttpException e) {   System.out.println("发生异常,可能是协议不对或者返回的内容有问题!");    e.printStackTrace();  }catch (IOException e) {   System.out.println("执行HTTP,GET请求" + getMethod + "时,发生异常!");    e.printStackTrace();  }finally {   //释放连接   getMethod.releaseConnection();  }  }}
/* *文件名:IoTest.java *描  述:描述类文件的作用与职责 *版  权:长沙江泓信息技术有限公司 Copyright (c) 2009-2013,All Rights Reserved. *创建者:向洁 *修改者:向洁 */package org.xiangjie.mt.get;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import org.apache.commons.io.IOUtils;import org.dom4j.DocumentHelper;import org.dom4j.Element;/** * @Description (商信通IO流GET方式请求demo) * @author   向洁 * @version  JOHOM V1.0 * @Date 2013-8-31-上午9:45:01 * @see   */public class IoTest {public static void main(String [] args) throws IOException{ HttpURLConnection connection = null;   //创建connection连接对象         InputStream inputStream = null;        //创建输入字节流对象      String encoding = "GBK";               //设置编码格式为GBK String url = "请求地址";               //请求地址                                String content = URLEncoder.encode("今晚打老虎",encoding);     //短信内容          /*通过GET方式请求参数      *user,用户名称      *pwd,  用户密码      *channel,系统为你分配的通道       *phonelist,手机号码串      *content,信息内容      */     String param = "user=用户名&pwd=密码&channel=通道&phonelist=号码串&cont="+内容;          /*扑捉异常*/     try {       /*通过GET方式请求连接*/    System.out.println(url + "?" + param);    connection = (HttpURLConnection) new URL(url + "?"+ param).openConnection();   connection.setRequestMethod("GET");   connection.setDoOutput(true);   connection.setUseCaches(false);   connection.setDoInput(true);   connection.setConnectTimeout(15000);   connection.connect();     /*返回内容处理*/   inputStream=connection.getInputStream();   String str =IOUtils.toString(inputStream ,encoding);  //读取字节流,保存到字符串str   System.out.println(str);       /*解析XML文件*    *方式一,DocumentHelper 方式解析    *方式二,SAXReader 方式解析     */   Element root = DocumentHelper.parseText(str).getRootElement();    /*status为1则表示发送成功,否则为失败*/   if("1".equalsIgnoreCase(root.elementTextTrim("status"))){   System.out.println("回执结果:"+root.elementTextTrim("status"));   System.out.println("成功");      }else{   System.out.println("失败");   System.out.println("错误原因:"+root.elementTextTrim("error"));   System.out.println("发送序列号:"+root.elementTextTrim("seq"));   }        }catch(Exception ex){          ex.printStackTrace();          }finally{              /*关闭连接对象,输入字节流*/   if(connection != null){   connection.disconnect();   connection = null;   }   if (inputStream != null) {   try {   inputStream.close();   inputStream = null;} catch (Exception ex1) {System.out.println("执行HTTP,GET请求" + url + "时,发生异常!"); ex1.printStackTrace();}}}}}

原创粉丝点击