HttpRequest Java原生代码封装  get提交 post提交

name1=value1&name2=value2 的形式  json形式两种形式

package com.beisun.mbp.mbp.controller;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;public class HttpRequest {/*** 向指定URL发送GET方法的请求* * @param url*            发送请求的URL* @param param*            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String sendGet(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + "?" + param;URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性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();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** 向指定 URL 发送POST方法的请求* * @param url*            发送请求的 URL* @param param*            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String sendPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("Content-Type", "application/json");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数
            out.print(param);// flush输出流的缓冲
            out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!"+e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result;}
}

转载于:https://www.cnblogs.com/nmdzwps/p/6715193.html

HttpRequest Java原生代码封装相关推荐

  1. Java原生代码连接MySQL数据库

    本章我们介绍, 如何用java原生代码实现连接MySQL数据库并实现基本的增,删,改,查操作. 为了便于演示,首先我们使用Navicat Premium新建一个user表并添加如下数据: ​​​​​​ ...

  2. rabbitmq java代码_RabbitMQ java 原生代码

    rabbitMQ 的交换器有四种类型:direct.fanout.topic.headers 以下是具体的代码: direct:路由键只能全部匹配,才能进入到指定队列中.其他使用 direct生产者 ...

  3. 使用JNA,让java调用原生代码

    JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...

  4. java原生封装_[Java教程]原生AJAX封装

    [Java教程]原生AJAX封装 0 2016-07-12 13:00:08 回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出!1 var ajaxHelper = { 2 ...

  5. java native code_原生代码(native code)

    原生代码(native code) Native code is the code whose memory is not "managed", as in, memory isn ...

  6. 对于原生代码使用Java线程的优缺点

    对于原生的代码使用Java线程与原生的线程相比有一下的优点: 它是很容易建立的. 在原生代码不需要任何改变 它不需要明确的附加到这虚拟机,Java线程已经是Java平台的一部分.原生代码和Java代码 ...

  7. java原生的编译软件_Java 转原生平台代码 RoboVM

    软件介绍 编者注:RoboVM 项目已经关闭,目前有开源替代产品BugVM. RoboVM 编译器可以将 Java 字节码翻译成 ARM 或者 x86 平台上的原生代码,应用可直接在 CPU 上运行, ...

  8. Android NDK开发篇(四):Java与原生代码通信(原生方法声明与定义与数据类型)

    Java与原生代码通信涉及到原生方法声明与定义.数据类型.引用数据类型操作.NIO操作.訪问域.异常处理.原生线程 1.原生方法声明与定义 关于原生方法的声明与定义在上一篇已经讲一点了,这次具体分析一 ...

  9. java编写一个类book代表教材_java 请通过代码封装,实现如下需求: 编写一个类Book,代表教材:...

    java 请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 关注:191  答案:2  mip版 解决时间 2021-02-01 17:18 提问者万丈深渊 2021-02-01 10: ...

最新文章

  1. javaweb开发3.基于Servlet+JSP+JavaBean开发模式的用户登录注册
  2. mysql的hash分区_MySQL中hash和key分区值的计算方法
  3. 如何快速高效读懂1本书
  4. 手机cpu排行_鲁大师手机芯片排行榜:麒麟990第四,骁龙855第五!
  5. [C程序设计语言]第一部分
  6. QHBoxLayout
  7. DDOS***类型以及iptables防范ddos脚本
  8. 两个相邻盒子的边框怎么只显示一个_【前端小课堂】0044 盒子
  9. 非maven项目转成maven后pom.xml解决方法
  10. Redis所需内存 超过可用内存怎么办
  11. Linux开放21通信,linux下开启ftp的21号port
  12. Vue -- 如何在 span 标签上实现一个点击事件
  13. CSS background 属性
  14. 【蓝桥杯单片机组模块】13、NEC 红外通信 - vs1838B
  15. python儿童编程-一款儿童编程入门的理想工具——PythonTurtle
  16. 仙剑3外传(问情篇)Win7(32/64位)不能运行的完全解决办法【转载】
  17. 西勒振荡电路------multisim仿真
  18. oraoledb.oracle.11,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法...
  19. BHEX创始人巨建华鲲鹏会分享:创业路上从不孤单
  20. Mac ps 2021 3D功能无法使用问题,怎么办?

热门文章

  1. 电脑配置及价格_游戏主机推荐 AMD锐龙R52600X配RTX2060组装电脑配置清单及价格
  2. 数学--数论--HDU 2197 本原串 (推规律)
  3. 玩转GIT系列之【如何恢复windows系统下git的状态图标显示】
  4. [递归]递归问题解题思路
  5. 支持向量机 回归分析_支持向量机和回归分析
  6. 【Android 修炼手册】常用技术篇 -- Android 热修复解析
  7. 记住北京历史上的灾难
  8. 一个我们熟悉的陌生人:多丽丝·莱辛
  9. 猪年看猪,猪男猪女一共十个。
  10. VS2010 + OpenCV 2.4.1 环境配置