首页 > 其他分享 >2023-12-17

2023-12-17

时间:2023-12-17 18:22:33浏览次数:27  
标签:12 contentType String 17 encoding connection params 2023 import

package Util;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

/**
 * http 工具类
 */
public class HttpUtil {

    public static String post(String requestUrl, String accessToken, String params)
            throws Exception {
        String contentType = "application/x-www-form-urlencoded";
        return HttpUtil.post(requestUrl, accessToken, contentType, params);
    }

    public static String post(String requestUrl, String accessToken, String contentType, String params)
            throws Exception {
        String encoding = "UTF-8";
        if (requestUrl.contains("nlp")) {
            encoding = "GBK";
        }
        return HttpUtil.post(requestUrl, accessToken, contentType, params, encoding);
    }

    public static String post(String requestUrl, String accessToken, String contentType, String params, String encoding)
            throws Exception {
        String url = requestUrl + "?access_token=" + accessToken;
        return HttpUtil.postGeneralUrl(url, contentType, params, encoding);
    }

    public static String postGeneralUrl(String generalUrl, String contentType, String params, String encoding)
            throws Exception {
        URL url = new URL(generalUrl);
        // 打开和URL之间的连接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        // 设置通用的请求属性
        connection.setRequestProperty("Content-Type", contentType);
        connection.setRequestProperty("Connection", "Keep-Alive");
        connection.setUseCaches(false);
        connection.setDoOutput(true);
        connection.setDoInput(true);

        // 得到请求的输出流对象
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(params.getBytes(encoding));
        out.flush();
        out.close();

        // 建立实际的连接
        connection.connect();
        // 获取所有响应头字段
        Map<String, List<String>> headers = connection.getHeaderFields();
        // 遍历所有的响应头字段
        for (String key : headers.keySet()) {
            System.err.println(key + "--->" + headers.get(key));
        }
        // 定义 BufferedReader输入流来读取URL的响应
        BufferedReader in = null;
        in = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), encoding));
        String result = "";
        String getLine;
        while ((getLine = in.readLine()) != null) {
            result += getLine;
        }
        in.close();
        System.err.println("result:" + result);
        return result;
    }
}

 

标签:12,contentType,String,17,encoding,connection,params,2023,import
From: https://www.cnblogs.com/wllovelmbforever/p/17909490.html

相关文章

  • USACO 2023-2024 赛季复盘
    【USACO23DEC】Cu复盘我先用了一个号打,然后是T1TLE*4,T2AC,T3WA*2。然后后面开了一个号调了一些,喜提阿克。T1:首先我们知道,对于\(a_1\)每一次是最先吃糖果的。所以必然有两个情况:全部给他吃了吃了一些首先情况一,我们可以直接特判掉。剩下情况二,吃了一些没吃完......
  • 2023-2024-1 学号20231315第十二周学习总结
    学期:2023-2024-1学号:20231315《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1《计算机基础与程序设计》这个作业的目标学习《C语言程序设计》第11章作业正文http......
  • 12月17每日打卡
    设计模式23种模式:23种设计模式---------------------创建型模式---------------------工厂模式工厂模式(FactoryPattern)是Java中最常用的设计模式之一。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。定义一个创建......
  • 2023-12-17 每天一练
    LeetCode每日一题746.使用最小花费爬楼梯问题给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费......
  • 2023-2024 20231404高伟光《计算机基础与程序设计》第十二周学习总结
    作业信息作业内容我的班级我的班级作业要求第十二周要求作业目标学习c语言中结构体和基础的数据结构作业正文此博客教材内容总结c语言程序设计第十二章中主要讲了结构体的定义,使用方法还有结构体指针的相关用法.以结构体为基础,衍生讲了联合体和枚......
  • 2023-2024-1 20232329易杨文轩《网络空间安全导论》第六周学习
    学期2023-2024-1学号:20232329《#学期2023-2024-1学号20232329《网络》第六周学习总结》教材学习内容总结教材学习中存在的问题和解决过程问题1:什么是半虚拟化?问题1解决方案:问题2:三种云计算的服务模型有什么区别?问题2解决方案:基于AI的学习参考资料[......
  • 2023ISCTF的fry题解及进阶格式化利用
    这题是一个比较好的进阶格式化利用。就是有点繁琐。先惯例checksec一下心脏骤停hhh。没事先分析一下Main函数int__cdeclmain(intargc,constchar**argv,constchar**envp){init(argc,argv,envp);puts("WelcometoISCTF~~~~~~~~~~~~~~~~");puts("Doyouwantto......
  • Windows 12将为个人电脑将带来颠覆性改变!PC史无前例的五大变化
    多方迹象显示,2024年将正式开启AIPC元年,2027年AIPC将成为市场主流。而Windows12的到来,将为个人电脑将带来颠覆性改变。近日举办的英特尔人工智能创新应用大赛上。联想集团副总裁、中国区首席市场官王传东发言表示,一台真正意义上的AIPC产品,应具备五大特征:首先是内嵌个人智能体......
  • 2023-2024-1 20232315 《网络空间安全导论》第六周学习总结
    一、教材学习内容总结近一周我预习了第六章应用安全基础,了解了相关知识,下面本章思维导图: 二、教材学习中的问题和解决过程问题一:虚拟化主要有哪些方式解决方法:百度搜索总结答案:虚拟化有很多实现方式,比如:根据虚拟化的程度和级别,有软件虚拟化和硬件虚拟化,全虚拟化和半虚拟......
  • 20191117丁乙倍——个人贡献
    任务详情1简述你完成的工作2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?3你们小组总共的文档数?你贡献的文档数?相关链接?1.完成的工作:数据库的设计和实现,数据库的连接2.小组总共完成的带码数:4800多行我贡献的代码数:982行代码链接:https://gitee.com/butanethiol/d......