找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 335|回复: 0

简易HttpUtil

[复制链接]

378

主题

55

回帖

2063

积分

管理员

积分
2063
发表于 2021-5-8 10:31:39 | 显示全部楼层 |阅读模式
简易HttpUtil


public class HttpUtil
{
        public static String getReadUrl(String url){
                HttpURLConnection conn = null;

                try {
                        URL u = new URL(url);
                        conn = (HttpURLConnection)url.openConnection();
                        conn.connet();
                        conn.getResponseCode();

                        return conn.getURL().toString();
                } finally {
                        if(conn != null){
                          conn.disconnect();
                        }
                }

        }
}






如果希望使用代理,可以在u.openConnection() 传入proxy 参数
InetSocketAddress addr = new InetSocketAddress("127.0.0.1",10808);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); // http 代理


对于github ,
https://github.com/go-kratos/kratos/releases/latest
会自动302 临时重定向到
https://github.com/go-kratos/kratos/releases/tag/v2.0.0-beta4


通过conn.getURL().toString() 可以获取到跳转后的链接


通过该链接甚至可以利用正则获取到最新的版本信息



下载:
URL u = new URL(URL);
u.openStream()  返回数据流


post 表单提交
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
conn.connet();


拼接表单参数
Map<String, Object> data;
Map 可以通过forEach(k, v) 遍历


data.forEach((k,v)->{
StringBuilder content = new StringBuilder();  content.append(key).append("=").append("URLEncoder.encode(String.valueOf(value)).append("&")");


// 数据遍历完后如果拼接时有数据,删除最后一个多余的&
if(content.length() > 0){
   content.setLength(content.length() -1);
}
})








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2024-12-19 22:49 , Processed in 0.035944 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表