联通彩E接入问题备忘

原创 2005年03月03日 10:10:00

首先要实现的是SSO接口,重点是加密。参考csdn上的文章,很快就可以了,

注意的是在3DES后再用Base编码回产生多余的回车换行,去掉他们再URLEncoder

写加密的时候顺便把解密也写了,等会push的时候要用来取TaskID

然后是push了,push的流程是sp->联通->亚信,其中联通只是验证包头部分。然后把包体提交给亚信。

如果包体格式不对的话,push返回错误代码也是0,但是手机收不到信息。

包头的加密就用SSO中现成的,包体用MimeMessage构造。这个是javamail的一个类。

连接用HttpURLConnection,

  public void connectUrl(String strUrl)
  {
    try
    {
      url = new URL("http", "pushservice.uni-wise.com", 80,
      "/imappushsubmit.aspx");
      hconn = (HttpURLConnection) url.openConnection();
      hconn.setRequestMethod("POST");
      hconn.setDoOutput(true);
      hconn.setDoInput(true);
    }
    catch (Exception ex)
    {
      System.out.println(ex);
    }
  }

构建包体

  private void setMimeMessage()
  {
    try
    {
      Properties props = new Properties();
      ServerIP = "smtp.sina.com.cn";
      System.out.println(ServerIP);
      props.put("mail.smtp.host", ServerIP);
      Session session = Session.getInstance(props, null);
      session.setDebug(true);
      mime = new MimeMessage(session);
      mime.setFrom(new InternetAddress("cheng_shiyong@yahoo.com.cn",new String(strFrom.getBytes("ISO8859_1"),"GB2312"),"GB2312"));
      mime.addRecipient(javax.mail.Message.RecipientType.TO,
   new InternetAddress(strTo));
      mime.setSubject(new String(strSubject.getBytes("ISO8859_1"),"GB2312"), "GB2312");
      mime.setSentDate(new java.util.Date());
      mime.setContent(getMimeMultipart());
    }
    catch (Exception ex)
    {
      System.out.println("MME.Push.setMimeMessage Error" + ex);
    }
  }

  private MimeMultipart getMimeMultipart()
  {
    MimeMultipart mimeMultipart = new MimeMultipart();
    MimeBodyPart mimeBodyPart = new MimeBodyPart();
    try
    {
      mimeBodyPart.setText(new String(mimeBodyText.getBytes("ISO8859_1"),"GB2312"), "GB2312");
      mimeMultipart.addBodyPart(mimeBodyPart);
      Vector filePathes = getFilePaths();
      for (int i = 0; i < filePathes.size(); i++)
      {
 String filePath = (String) filePathes.get(i);
 javax.activation.DataSource datasource = new javax.activation.
     FileDataSource(filePath);
 MimeBodyPart mimeFile = new MimeBodyPart();

 mimeFile.setHeader("Content-Transfer-Encoding", "base64");
 mimeFile.setDataHandler(new javax.activation.DataHandler(datasource));
 mimeFile.setFileName( (new File(filePath)).getName());
 mimeMultipart.addBodyPart(mimeFile);
      }
    }
    catch (Exception e)
    {
      System.out.println("MME.Push.getMimeMultipart Error" + e);
    }
    return mimeMultipart;
  }

发送信息用

MimeMessage.writeTo(hconn.getOutputStream());

读取联通返回信息

      BufferedReader rd = new BufferedReader(new InputStreamReader(hconn.
   getInputStream()));
      for (String line = null; (line = rd.readLine()) != null; )
      {

        sb.append(line);
      }

中间遇到过jaf 报不支持 multipart/mixed类型的错误。造成这个错误的原因是同时有多个mail包存在在系统里面,解决方式是把jaf和mail两个包都放在WEB-INF/lib下面。删除掉其他地方的副本。

另外联通返回的包里面的错误代码是10进制的,要转换成16进制的才能在错误表里面查到

只是自己备忘,写的很乱。呵呵

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

E6终极备忘:修复IE6下_25+_Bugs

E6终极备忘:修复IE6下_25+_Bugs 引言:“珍惜生命,远离IE 6!”       对IE6最好的策略就是不去兼容它。 好吧,我知道你的难处,你不得不去兼容IE6这个狗血的浏...

Android4.4 系统移植问题备忘

最近在基于Linux kernel 3.14的版本移植Android4.4系统,移植过程中遇到了很多问题,现在记录一下做个备忘: 1. init.rc无法解析     由于Android4.4系统加强...

乱码问题备忘

请查一下系统设置的 locale 是什么,请把LANG设置为 zh_CN.gbk, 同时你还可以在启动文件中加入-Dfile.encoding=GBK, 例如在setDomainEnv.sh中修改J...
  • Baple
  • Baple
  • 2016-05-03 15:35
  • 490

真机测试ionic ios app问题备忘

系统版本:mac os x el capitan 10.11.6 ionic版本:2.0.0 很久没有开发ionic程序,今天把ionic升级并创建一个新的项目来测试真机运行,出现了以下问题 出现...

webapp混合开发问题备忘

项目说明: 1.header和footer部分用的原生开发,中间部分webview(html5开发); 2.开发的js库用的jquery,但没用jquery的ui(改起来太费劲!!) 问题: 1.用j...

浏览器兼容性问题备忘

关于要不要兼容IE678,其实这就看业务需求了。比如有的企业,像电商类的,他们不想流失掉使用老版本IE的用户,因为流失用户就代表着流失金钱,所以他们必须要兼容IE678。我个人认为,从一个前端开发者的...

Phpexcel 操作乱码问题备忘

情景:用了很长时间没有问题的Phpexcel突然出现导出乱码,搜索网络资源发现有三个解决方法: (1).乱码原因:客户使用的中文版Windows系统平台,而Windows平台的文件名编码为 gb23...

【小记备忘】IE11的插件兼容问题

【小记备忘】IE11的问题 欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611  今天碰到一个插件不能使用,仅在IE11下...

C#和Java中的i=i++问题分析与备忘

C#和Java中的i=i++问题分析与备忘
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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