java 发送 Http 请求笔记
http 代码
这几天使用 java 代码发送 http请求, 真的是搞得我焦头烂额. 在网上找了几十篇文档, 几乎都大同小异.
首先是网络上最通用的代码
public static void callUrl(@NonNull String json, @NonNull String url, Charset charset) throws IOException {
// 请求url
log.info("send json: {}", json);
URL postUrl = new URL(url);
log.info(charset.name());
json = URLEncoder.encode(json, charset.name());
// json = new String(json.getBytes(charset.name()), charset.name());
// 打开连接
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST"); // 默认是 GET方式
connection.setUseCaches(false); // Post 请求不能使用缓存
connection.setInstanceFollowRedirects(true); //设置本次连接是否自动重定向
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
connection.addRequestProperty("Connection", "Keep-Alive");//设置与服务器保持连接
connection.setRequestProperty("Accept-Language", "zh-CN,zh;0.9");
// 连接
connection.connect();
try (DataOutputStream out =