Android HttpURLConnection Post请求

注意事项

Content-Type的配置需要和后台一直,否则后台接收不到数据

1、Content-Type:设置为application/json;charset=UTF-8

connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");//json格式

对应的参数格式为:{a:b,c:d}

2、Content-Type:设置为application/x-www-form-urlencoded

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//网页表单格式

对应的格式为"a=b;c=d"

代码

 /**
     * xx
     *
     * @param token xx的token
     * @param sign  xx的sign
     */
    private void riskManager(final String token, final String sign) {
        //请求
        new Thread(new Runnable() {
            @Override
            public void run() {

                try {
                    // 0.相信证书

                    // 1. 获取访问地址URL
                    URL url = new URL("http://xxx.do");
                    // 2. 创建HttpURLConnection对象
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    // 3. 设置请求参数等
                    // 请求方式
                    connection.setRequestMethod("POST");
                    // 超时时间
                    connection.setConnectTimeout(30000);
                    connection.setReadTimeout(30000);
                    // 设置是否输出
                    connection.setDoOutput(true);
                    // 设置是否读入
                    connection.setDoInput(true);
                    // 设置是否使用缓存
                    connection.setUseCaches(false);
                    // 设置此 HttpURLConnection 实例是否应该自动执行 HTTP 重定向
                    connection.setInstanceFollowRedirects(true);
                    //设置通用的请求属性
                    //connection.setRequestProperty("accept", "/*");
                    //connection.setRequestProperty("connection", "Keep-Alive");
                    //connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
                    //设置cookie
                    //connection.setRequestProperty("Cookie", "JSESSIONID=" + SPUtil.getParam(OcrUploadActivity.this, GxjlPe.sessionId, ""));
                    //connection.setRequestProperty("accessToken", (String) SPUtil.getParam(OcrUploadActivity.this, GxjlPe.accessToken, ""));
                    // 设置使用标准编码格式编码
                    //connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");//json格式
                    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//网页表单格式
                    // 连接
                    connection.connect();
                    // 4. 处理输入输出
                    // 写入参数到请求中

//                    //Content-Type:application/json;charset=UTF-8 对应json格式参数数据
//                    String params = "{" +
//                            "\"memberId\":\"" + member_id + "\"" + "," +
//                            "\"transNo\":\"" + trans_id + "\"" + "," +
//                            "\"proId\":\"" + product_id + "\"" + "," +
//                            "\"token\":\"" + token + "\"" + "," +
//                            "\"sign\":\"" + sign + "\"" +
//                            "}";


                    //Content-Type:application/x-www-form-urlencoded 网页表单格式对应的参数数据
                    Map map = new HashMap();
                    map.put("memberId", member_id);
                    map.put("transNo", trans_id);
                    map.put("proId", product_id);
                    map.put("token", token);
                    map.put("sign", sign);

                    String params = convertStringParamter(map);

                    LogUtils.d("BaoFuPay", "RiskManagerParams:" + params);

                    OutputStream out = connection.getOutputStream();
                    out.write(params.getBytes());
                    out.flush();
                    out.close();
                    // 从连接中读取响应信息
                    String msg = "";
                    int code = connection.getResponseCode();
                    if (code == 200) {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                        String line;
                        while ((line = reader.readLine()) != null) {
                            msg += line + "\n";
                        }
                        reader.close();
                    }
                    // 5. 断开连接
                    connection.disconnect();

                    //loading

                    // 处理结果
                    LogUtils.d("BaoFuPay", "RiskManagerResult:" + msg);
                } catch (Exception e) {
                    //loading
                    Log.e("BaoFuPay", "RiskManager:" + e);
                }
            }
        }).start();


    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beluga_白鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值