Java 发送HTTP-POST请求(支持中文参数)

1、Map参数转为json格式工具
package com.newcapec.eam.business.util;


import java.util.HashMap;
import java.util.Map;

import org.json.JSONObject;

/**
 * map转json
 * 作者: 彭赛赛
 * 创建时间:2019/11/4 9:21
 */
public class Map2JsonUtil {
    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<>();
        //Map 对象存入 用户名,密码,电话号码
        map.put("username", "liyang");
        map.put("pwd", "111111");
        map.put("telephone", "152232323");
        String str = map2Json(map);
        System.out.println(str);
    }

    public static String map2Json(Map<String, Object> map){
        JSONObject jsonObj = new JSONObject(map);
        return jsonObj.toString();
    }
}
2、发送Post请求
package com.newcapec.eam.business.util;

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

public class SendPostUtil {
    final static String url = "http://192.168.60.100:80/GrantApiSetup/Grant/GrantAccess";

    public static void main(String[] args) {
        HashMap<String, Object> map = new HashMap<>();
        map.put("OutID", "0006410822");
        map.put("RoomFullName", "李仕文园区/李仕文大厦/1单元/1层/大门");
        map.put("GrantType", "1");
        map.put("StartDT", "2017-07-04 00:00:00");
        map.put("EndDT", "2017-07-04 23:59:59");
        map.put("Key", "493A724404AA3C84A97B2ADF389B28FD");
        map.put("Opdt", "2017-07-03 12:16:35");
        String res = post(url, Map2JsonUtil.map2Json(map));
        System.out.println(res);
    }

    /**
     * 发送HttpPost请求
     *
     * @param strURL 服务地址
     * @param params json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
     * @return 成功:返回json字符串<br/>
     */
    public static String post(String strURL, String params) {
        System.out.println(strURL);
        System.out.println(params);
        BufferedReader reader = null;
        try {
            URL url = new URL(strURL);// 创建连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestMethod("POST"); // 设置请求方式
            // connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
            connection.connect();
            //一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
            out.append(params);
            out.flush();
            out.close();
            // 读取响应
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            String line;
            String res = "";
            while ((line = reader.readLine()) != null) {
                res += line;
            }
            reader.close();
            return res;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "请求错误"; // 自定义错误信息
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值