package com.j1.soa.resource.member.oracle.service;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;

import net.sf.json.JSONObject;

import com.j1.soa.common.Md5Util;

public class HttpText {

     final static String url = "http://192.168.200.53:8081/httpServer/c_i/common_i";
    //final static String url = "http://127.0.0.1:8080/httpServer/c_i/common_i";

    /**
     * 发送HttpPost请求
     * @param strURL  服务地址
     * @param sign  加密后的32 大写 MD5
     * @return 成功:返回json字符串<br/>
     */
    public static String post(String strURL,  String format,String method ,String sessionKey,String up_Date,String version,String sign) {
        System.out.println(strURL);
        System.out.println(sign);
        StringBuffer buffer = new StringBuffer();
        try {
            URL url = new URL(strURL);// 创建连接
            HttpURLConnection connection = (HttpURLConnection) url
                    .openConnection();
             connection.setDoOutput(true);
             connection.setDoInput(true);
             connection.setRequestMethod("POST");
             connection.setUseCaches(false);
             connection.setInstanceFollowRedirects(true);
           //  connection.setContentType("text/xml;charset=utf-8");
             connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
             connection.setRequestProperty("ContentType", "utf-8"); // 设置发送数据的格式
             connection.setRequestProperty("Accept-Charset", "utf-8");
             connection.connect();
               //POST请求
          //   BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
             PrintWriter out =   new PrintWriter(new OutputStreamWriter(connection.getOutputStream(),"utf-8")); // utf-8编码  ;
            JSONObject obj = new JSONObject();
            obj.element("sessionKey", sessionKey);
            obj.element("method",method);
            obj.element("format", format);
            obj.element("up_Date", up_Date);
            obj.element("sign", sign);
            obj.element("version", version);
           JSONObject objbusinessdate = new JSONObject();
           objbusinessdate.element("memCardNo", "f999999299-ffJ1");//卡号
            objbusinessdate.element("contactor", "移动人");//姓名
             objbusinessdate.element("idCardCode", "32080220163212012");//身份证
           objbusinessdate.element("sex", "F");//性别
           objbusinessdate.element("birthDay", "2016-03-21");//生日 YYYY-MM-DD
        //    objbusinessdate.element("age",  19);//年龄
             objbusinessdate.element("address", "移动电话");// 地址
        //    objbusinessdate.element("hTel", "1111111111");// 座机
             objbusinessdate.element("mTel", "00800780");// 移动电话
           objbusinessdate.element("eMail", "11111@j1.com");//email
           objbusinessdate.element("enrDeptId", "1111");//部门id
             objbusinessdate.element("roptrId", "3219");//操作人id
            objbusinessdate.element("ybCardCode", "111111111111");//医保卡
         //   objbusinessdate.element("qqCode", "111111");//qq
            objbusinessdate.element("note", "移动电话"); //备注
            //"contactor":"15821023367","sex":"1","mTel":"15821023367","eMail":"fufu_pupu@163.com","regTime":"2016-11-22 10:18:19"
           /*** JSONObject objbusinessdate = new JSONObject();
                       objbusinessdate.element("username", "tyf");//  username ,
                       objbusinessdate.element("password", "1111"); //password

                       /***
                        * select    te.tranid     tranId,
                                    ca.contactor  contactor ,
                                    ca.memcardno  memCardNo,
                                     sa.retnamt   discount,
                                    sa.saleamt     saleAmt ,
                                    sa.trandate    tranDate,
                                    cae.articode   artiCode,
                                    cae.artiname   artiName,
                                    -te.artiqty    artiQty ,
                                    te.saleprice   salePrice

                 JSONObject objbusinessdate = new JSONObject();
                        objbusinessdate.element("deptNo", "000");//门店编码
                        objbusinessdate.element("deptName", "000");//门店名称
                        objbusinessdate.element("tranid", "1123");//  销售订单号 ,
                        objbusinessdate.element("contactor", "000");// 会员名称
                        objbusinessdate.element("memCardNo", "000");//会员卡号
                        objbusinessdate.element("discount", "000");//优惠
                        objbusinessdate.element("mTel", "000");//手机号码
                JSONObject artiitem = new JSONObject();         

                        artiitem.element("saleAmt", "000");//实付金额
                        artiitem.element("tranDate", "000");//销售时间
                        artiitem.element("artiCode", "000");      //商品编码
                        artiitem.element("artiName", "000");//商品名称
                        artiitem.element("artiQty", "000");//数量
                        artiitem.element("salePrice", "000");  //成交价格
                 objbusinessdate.element("artiitem", artiitem);
                        */
          //  String txt = new String(objbusinessdate.toString().getBytes(), "utf-8");
            obj.element("businessData", objbusinessdate);

            System.out.println(obj.toString());

           // out.write(obj.toString().getBytes());

            // 发送请求参数
            out.print(obj.toString() );
            // flush输出流的缓冲
            out.flush();

            // 读取响应
            int length = (int) connection.getContentLength();// 获取长度
            System.out.println("length:"+length);
            BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while( (line = rd.readLine())!=null){
                buffer.append(line);
            }
            out.close();
            rd.close(); 

            connection.disconnect();
            System.out.println(buffer.toString()+"  0000");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "error"; // 自定义错误信息
    }

    public static void main(String[] args) {

        //MD5加密顺序  format  meThod  sessionKey token  up_date  version
        //           format+method+sessionKey+token+up_date+version
         String token="91A1643059824847938125BA0AC0F557";//"bf0d8da2736e4d8caea055d863610a33  ";91A1643059824847938125BA0AC0F557 //token 不产于传送 但是参与加密

         String format ="json";      //传送方式
         String method ="saveMember";//"queryTbl_Employee " erpTranDetailCount_ToJ1 saveMember ;//调用方法
         String sessionKey ="123456789078945";//sessionkey
         String up_date ="2016-10-27";//上传日期  yyyy-mm-dd
         String version ="1.0.2";//版本号

     //  TranIdListServiceImpl.testhttprequest();
         //System.exit(0);
         String sign=null;
        try {
            sign = Md5Util.Bit32(format+method+sessionKey +token+up_date+version);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          post(url,format,method ,sessionKey,up_date,version,sign);
    }

}

http发送post请求的更多相关文章

  1. Java发送Http请求并获取状态码

    通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...

  2. AngularJs的$http发送POST请求,php无法接收Post的数据解决方案

      最近在使用AngularJs+Php开发中遇到php后台无法接收到来自AngularJs的数据,在网上也有许多解决方法,却都点到即止.多番摸索后记录下解决方法:tips:当前使用的AngularJ ...

  3. Ajax发送POST请求SpringMVC页面跳转失败

    问题描述:因为使用的是SpringMVC框架,所以想使用ModelAndView进行页面跳转.思路是发送POST请求,然后controller层中直接返回相应ModelAndView,但是这种方法不可 ...

  4. 使用HttpClient来异步发送POST请求并解析GZIP回应

    .NET 4.5(C#): 使用HttpClient来异步发送POST请求并解析GZIP回应 在新的C# 5.0和.NET 4.5环境下,微软为C#加入了async/await,同时还加入新的Syst ...

  5. 在发送ajax请求时加时间戳或者随机数去除js缓存

    在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的 ...

  6. HttpUrlConnection发送url请求(后台springmvc)

    1.HttpURLConnection发送url请求 public class JavaRequest { private static final String BASE_URL = "h ...

  7. kattle 发送post请求

    一.简介 kattle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述 ...

  8. 【荐】怎么用PHP发送HTTP请求(POST请求、GET请求)?

    file_get_contents版本: <?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data pos ...

  9. 使用RestTemplate发送post请求

    最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败,中文乱码等,调了好久才找到下面较为简便的方法: RestTemplate restTemplate ...

  10. 【转载】JMeter学习(三十六)发送HTTPS请求

    Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...

随机推荐

  1. MySQL教程:数据库具体操作

    1. 连接数据库服务器 $ ./mysql -h host_name -u user_name -p -h host_name(--host=host_name),连接的数据库主机名,如果在本地主机上 ...

  2. Sql 日期时间 转换

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...

  3. 一些SQL语句的问题

    1.getdate()函数问题 go create table table_1( id int primary key identity, name ) not null, daytime datet ...

  4. 取消IDEA中光标“指哪打哪”模式

    很简单,在Settings->Editor里面去掉Allow placement of caret after end of line

  5. Windows Server 2012从Evaluation版转成正式版

    步骤 运行->CMD(管理员)->输入DISM /online /Get-CurrentEdition 看你的Edition ID是什么,如果是Evaluation的话,例如Standar ...

  6. sqoop 1.4.4-cdh5.1.2快速入门

    一.快速入门 (一)下载安装 1.下载并解压 wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.2.tar.gz tar - ...

  7. 网页通用的测试用例(出处:: 51Testing-- lxp1119216)

    此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力 这个题目还是相当有难度的, 一般的人很难把这个题目回答好. 首先,你要了 ...

  8. Python入门100例题

    原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/11/05/2755107.html 无论学习哪门计算机语言,只要把100例中绝大部分题目都做一遍, ...

  9. acdream暴力专场中的优美暴力

    F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Other ...

  10. 【学习笔记】【Foundation】集合Set

    不可变集合 NSSet :集合元素无顺序,没有索引号,元素不可重复. NSSet在功能上可看做是NSArray的父集,它是一个更通用的类. NSSet包含如下常用方法: setByAddingObje ...