|
简易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);
}
})
|
|