原生方式:@转载文章

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;import org.apache.commons.lang.StringUtils;public class HttpGetUtil {/*** Post 请求超时时间和读取数据的超时时间均为2000ms。** @param urlPath       post请求地址* @param parameterData post请求参数* @return String json字符串,成功:code=1001,否者为其他值* @throws Exception 链接超市异常、参数url错误格式异常*/public static String doPost(String urlPath, String parameterData, String who, String ip) throws Exception {if (null == urlPath || null == parameterData) { // 避免null引起的空指针异常return "";}URL localURL = new URL(urlPath);URLConnection connection = localURL.openConnection();HttpURLConnection httpURLConnection = (HttpURLConnection) connection;httpURLConnection.setDoOutput(true);if (!StringUtils.isEmpty(who)) {httpURLConnection.setRequestProperty("who", who);}if (!StringUtils.isEmpty(ip)) {httpURLConnection.setRequestProperty("clientIP", ip);}httpURLConnection.setRequestMethod("POST");httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));httpURLConnection.setConnectTimeout(18000);httpURLConnection.setReadTimeout(18000);OutputStream outputStream = null;OutputStreamWriter outputStreamWriter = null;InputStream inputStream = null;InputStreamReader inputStreamReader = null;BufferedReader reader = null;StringBuilder resultBuffer = new StringBuilder();String tempLine = null;try {outputStream = httpURLConnection.getOutputStream();outputStreamWriter = new OutputStreamWriter(outputStream);outputStreamWriter.write(parameterData.toString());outputStreamWriter.flush();if (httpURLConnection.getResponseCode() >= 300) {throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());}inputStream = httpURLConnection.getInputStream(); // 真正的发送请求到服务端inputStreamReader = new InputStreamReader(inputStream);reader = new BufferedReader(inputStreamReader);while ((tempLine = reader.readLine()) != null) {resultBuffer.append(tempLine);}} finally {if (outputStreamWriter != null) {outputStreamWriter.close();}if (outputStream != null) {outputStream.close();}if (reader != null) {reader.close();}if (inputStreamReader != null) {inputStreamReader.close();}if (inputStream != null) {inputStream.close();}}return resultBuffer.toString();}public static String doPost(String url, Map<String, Object> params) throws Exception {StringBuffer sb = new StringBuffer();for (Map.Entry<String, Object> entry : params.entrySet()) {sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");}// no matter for the last '&' characterreturn doPost(url, sb.toString(), "", "");}/*** 向指定URL发送GET方法的请求** @param url   发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String sendGet(String url, String param, String who, String ip) {String result = "";BufferedReader in = null;try {String urlNameString = url;if (!"".equals(param)) {urlNameString = urlNameString + "?" + param;}URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性if (!StringUtils.isEmpty(who)) {connection.setRequestProperty("who", who);}if (!StringUtils.isEmpty(ip)) {connection.setRequestProperty("clientIP", ip);}connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接
            connection.connect();// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}public static String sendGet(String url, Map<String, Object> params) throws Exception {StringBuffer sb = new StringBuffer();for (Map.Entry<String, Object> entry : params.entrySet()) {sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");}// no matter for the last '&' characterreturn sendGet(url, sb.toString(), "", "");}}

更多方式:@参考文章

转载于:https://www.cnblogs.com/yanan7890/p/9651305.html

java发送http连接相关推荐

  1. java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据 测试代码 public static void main(S ...

  2. JAVA实现长连接(含心跳检测)Demo

    实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的.        如果,长时间未发送维持连接包,服务端程序将断开连接. 客户端:        Client通过持有So ...

  3. java前端长连接框架_Java如何实现长连接

    实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的. 如果,长时间未发送维持连接包,服务端程序将断开连接. 客户端: Client通过持有Socket的对象,可以随时(使 ...

  4. android tcp判断服务器是否断开,Android tcp客户端连接,然后从java服务器断开连接...

    我在我的电脑上执行java服务器并让我的android设备连接到它.我可以连接它,但一旦连接就会断开连接.我确信在android方面我需要做一些事情,但我很少迷失它.我有互联网许可,所以很好.Andr ...

  5. Java发送form-data请求实现文件上传

    如何使用Java发送form-data格式的请求上传multipart文件? 封装了以下工具类: package com.leeyaonan.clinkz.common.util;import jav ...

  6. java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...

  7. Java发送电子邮件(使用mail.jar和activation.jar)

    本文参考使用技术Java+JSP+Servlet 本次源代码可在本人网盘下载:http://pan.baidu.com/s/1jIdV7r4 循序渐进介绍如何使用Java发送电子邮件 一.J2EE+前 ...

  8. Java发送QQ邮件问题Could not connect to SMTP host: smtp.qq.com, port: 465(内附完整代码)

    邮件发送失败,本地测试可以,部署到服务器就不行. 之前就碰到这个问题,解决办法就是把port端口改成587,然后注释这一段 MailSSLSocketFactory sf = new MailSSLS ...

  9. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

最新文章

  1. .NET6之MiniAPI(十六):数据保护
  2. linux之让终端支持C++11/14编译cpp文件
  3. Oracle备份文件名获取系统时间的做法(windows)
  4. html中使用什么标签做的导航栏_自媒体人如何自己建立一个手机网站,超简单,任何人都能做...
  5. ElasticSearch fuzzy模糊查询(英文检索)
  6. 探秘亚马逊最特别的机器人工厂:800只机器人在奔跑,人类却没有被淘汰?
  7. java android 游戏开发_Java快速开发安卓游戏-aide教程
  8. 计算机考研专业课数字,2020北京航空航天大学计算机考研初试专业课经验
  9. 电磁波传播matlab程序,电磁波在不同介质中传播的 MATLAB 仿真教学实践论文
  10. 【听】蔡康永的说话之道,说话的技巧方法论
  11. java 自然对数的底数_Java求自然对数底e的值
  12. Pytorch 风格迁移(Style transfer)
  13. VR这张旧船票,能否登上元宇宙这艘宇宙飞船?
  14. vant picker confirm事件
  15. 因果推理(八):工具变量(Intrusmental Variables)
  16. 整理2020java面试题
  17. win11怎么共享文件夹 Windows11共享文件夹的设置方法
  18. 铁路行李随车托运办理
  19. CloudCompare编译las
  20. IDEA 设置保存时自动格式化代码 - 中文界面

热门文章

  1. POJ2230 Watchcow——欧拉回路——Pku2230
  2. python set使用
  3. SQL Server 临时表
  4. Python 安全编程学习总结
  5. dnet 并行编程学习总结
  6. webpack 零基础到工程实战(1)
  7. AcWing 199. 余数之和 (除法分块)打卡
  8. [HEOI2015] 兔子与樱花
  9. c++ shared_ptr的使用
  10. linux下安装oracle客户端,实现远程连接oracle库,导出数据表