首页 > 其他分享 >HttpClient发送Post请求传递json、普通参数

HttpClient发送Post请求传递json、普通参数

时间:2022-10-07 13:33:15浏览次数:53  
标签:http json httpPost org apache import Post HttpClient

import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author: yc
 * @Description: HttpClient发送Post请求
 * @Date: 2021/07/27/18:32
 */
public class HttpClientUtil {

	//发送请求的url
    public static String url = "http://192.168.9.247:3080/co/cmd/deleteProject";

    public static void deletePost() throws IOException {
    
        // 获取HttpClient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();

        // 声明Post请求
        HttpPost httpPost = new HttpPost(url);

        // 设置请求头,在Post请求中限制了浏览器后才能访问
        httpPost.addHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36");
        httpPost.addHeader("Accept", "*/*");
        httpPost.addHeader("Accept-Encoding", "gzip, deflate, br");
        httpPost.addHeader("Content-Type", "application/json");
//        httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
        httpPost.addHeader("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
        httpPost.addHeader("Connection", "keep-alive");
        
        // 设置token
        //httpPost.addHeader("Authorization","eyJ0eXAiOiJKV1QiLCJhbGciOiJIDASDUzI1NiJ9.eyJleHAiOjE2Mjc0NTQzODYsInVzZXJuYW1lIjoiYWJjZCJ9.MYvNg03txeNm_KiI27fdS0KViVxWhLntDjBjiP44UYQDASCSACCSA");

     JSONObject json = new JSONObject();
     json.put("filePath","js");
     json.put("projectId","61020ccdfd33d86b6abe8745");
     json.put("type","fileFolder");
     
     // 发送 json 类型数据,通过new StringEntity(),可将Content-Type设置为text/plain类型
        httpPost.setEntity(new StringEntity(json.toString(),"UTF-8"));

     // 设置参数(发送 普通参数 数据类型)
     /*
        List<NameValuePair> parameters = new ArrayList<NameValuePair>();
        for(String key:json.keySet()) {
            parameters.add(new BasicNameValuePair(key, json.getString(key)));
        }
        
        // 将Content-Type设置为application/x-www-form-urlencoded类型
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters, "UTF-8");
        httpPost.setEntity(formEntity);
		*/

        // 发送请求
        CloseableHttpResponse response = httpClient.execute(httpPost);
        
        if (response.getStatusLine().getStatusCode() == 200) {
            HttpEntity entity = response.getEntity();
            
            // 获取返回的信息
            String string = EntityUtils.toString(entity, "UTF-8");
            System.out.println(string);
        }
        else
        {
            System.out.println("删除失败,请重试!!!");
        }

        // 关闭response、HttpClient资源
        response.close();
        httpClient.close();
    }
}

  原文来自:https://blog.csdn.net/qq_43758789/article/details/119222073

标签:http,json,httpPost,org,apache,import,Post,HttpClient
From: https://www.cnblogs.com/rerise/p/16759583.html

相关文章

  • Springboot 之 Filter 实现 Gzip 压缩超大 json 对象
    简介在项目中,存在传递超大json数据的场景。直接传输超大json数据的话,有以下两个弊端占用网络带宽,而有些云产品就是按照带宽来计费的,间接浪费了钱传输数据大导致......
  • JSON
    json在线解析:https://www.sojson.com/json基础入门:https://blog.csdn.net/Rao_Limon/article/details/80011601学习网站:http://c.biancheng.net/json/what-is-json.html......
  • 若依使用postman登录进行api测试
    最近无聊研究一下若依的架构,但是不想在前端上有过多的纠结,因此想使用postman来操作后端的api进行测试。关闭验证码我们使用postman时传递验证码的base64非常繁琐,因此关闭......
  • 忘掉Postman,Apifox更好用
    大家好,我是老三,今天正在用Postman调试接口,同事阿六在我后面站着看了了一会。阿六:“啧啧……”我:“你个老六,肾么意思?”阿六:“三老师,你这不好使,调代码全是死劲。”我上去就是......
  • jsonschema2pojo 基于json schema 生成代码
    jsonschema2pojo是一个很不错的基于jsonschema生成代码的包以及工具(maven扩展)jsonschema2pojo特点支持基本的jsonschema操作支持java扩展,比如别名,继承扩展接口外......
  • quicklib json序列
    quicklibjson序列quicklib面向MODEL的JSON序列。unitUnit2;///<author>cxg2022-6-14</author>interfaceusesquick.Json.Serializer,Quick.MemoryCache.Seri......
  • leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前
    一、题目大意给定两个整数数组,preorder和postorder,其中preorder是一个具有无重复值的二叉树的前序遍历,postorder是同一棵树的后序遍历,重构并返回二叉树。如果存......
  • openmetadata jsonschema 处理的一些变动
    openmetadata估计是因为quicktype使用复杂费事,最近版本quicktype的集成已经废弃了,都使用jsonschema2pojo了实际上使用jsonschema2pojo对于java项目来说也比较好,毕竟......
  • Android中的JSON详细总结
    1、JSON(JavaScriptObjectNotation)定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得......
  • Android Asynchronous HTTPClient的实现和优化
    大家知道Android对UI线程的反应时间要求很高,超过5秒钟直接ANR掉,根本不给你机会多等。而Android应用与后端系统的交互是最基本的需求之一,如何实现高效的AsynchronousHTTPCli......