java发送http post请求raw格式

当使用JAVA对接环信IM专业版创建群聊室时遇到报错,通过记录并分享使用HTTP POST请求创建群聊室的方法来避免未来类似问题。主要步骤包括构造JSON字符串参数,设置请求头,发送POST请求,并处理响应。
摘要由CSDN通过智能技术生成

记:

        最近因为对接环信IM开通专业版本之后,服务端(JAVA)对接创建群聊室时报错,代码没有修改过但是一直报错,最后不得不修改成发送http post请求去创建群聊室。

        防止以后遇到相同的问题,这里记录一下操作方式

        1,发送http post请求,参数必须是Json字符串


import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

 public JSONObject httpPostRequest(String param,String url,String token){
        JSONObject jsonObject = new JSONObject();
        try (final CloseableHttpClient httpClient = HttpClients.createDefault()) {
            final HttpPost httpPost = new HttpPost(url);
            JSONObject jsonString = JSON.parseObject(param);
            //设置请求体参数
            StringEntity entity = new StringEntity(param);
            entity.setContentEncoding("utf-8");
            httpPost.setEntity(entity);
            //设置请求头部
            httpPost.setHeader("Content-Type", "application/json");
            if(token != null && !"".equals(token)){
                httpPost.setHeader("Authorization",token);
            }
            //执行请求,返回请求响应
            try (final CloseableHttpResponse response = httpClient.execute(httpPost)) {
                //请求返回状态码
                int statusCode = response.getStatusLine().getStatusCode();
                //请求成功
                if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) {
                    //取出响应体
                    final HttpEntity entity2 = response.getEntity();
                    //从响应体中解析出token
                    String responseBody = EntityUtils.toString(entity2, "utf-8");
                    jsonObject = JSONObject.parseObject(responseBody);
                    //token = jsonObject.getString("access_token");
                } else {
                    //请求失败
                    throw new ClientProtocolException("请求失败,响应码为:" + statusCode);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonObject;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值