java http 返回json_java发起http请求获取返回的Json对象方法
话不多说,先看代码!
/**
* Created by david on 2017-7-5.
*/
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpRequestUtil {
/**
* 发起http请求并获取结果
* @param requestUrl 请求地址
*/
public static JsonObject getXpath(String requestUrl){
String res="";
JsonObject object = null;
StringBuffer buffer = new StringBuffer();
try{
URL url = new URL(requestUrl);
HttpURLConnection urlCon= (HttpURLConnection)url.openConnection();
if(200==urlCon.getResponseCode()){
InputStream is = urlCon.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
BufferedReader br = new BufferedReader(isr);
String str = null;
while((str = br.readLine())!=null){
buffer.append(str);
}
br.close();
isr.close();
is.close();
res = buffer.toString();
JsonParser parse =new JsonParser();
object = (JsonObject) parse.parse(res);
}
}catch(IOException e){
e.printStackTrace();
}
return object;
}
public static JsonObject postDownloadJson(String path,String post){
URL url = null;
try {
url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
// conn.setConnectTimeout(10000);//连接超时 单位毫秒
// conn.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
// 发送请求参数
printWriter.write(post);//post的参数 xx=xx&yy=yy
// flush输出流的缓冲
printWriter.flush();
//开始获取数据
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len;
byte[] arr = new byte[1024];
while((len=bis.read(arr))!= -1){
bos.write(arr,0,len);
bos.flush();
}
bos.close();
JsonParser parse = new JsonParser();
return (JsonObject)parse.parse(bos.toString("utf-8"));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//测试
public static void main(String args [] ) {
JsonObject res = null;
// res = getXpath("http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42");
res = postDownloadJson("http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42","123");
System.out.println(res);
System.out.println(res.get("code"));
System.out.println(res.get("data"));
}
}
看第一个方法,发送get请求获取后台数据,其中,将返回回来的字符串解析成json对象用到了google的Gson.jar包,用到了其中JsonParser的parse方法。
第二个方法,发送post数据到后台并获取后台数据。
以上这篇java发起http请求获取返回的Json对象方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。
java http 返回json_java发起http请求获取返回的Json对象方法相关推荐
- java 请求url 返回数据_java后台发起get请求获取响应数据|chu
本文实例为大家分享了java后台发起get请求获取响应数据,供大家参考,具体内容如下 学习记录: 话不多说直接上代码: package com.jl.chromeTest; import java.i ...
- java 从一个容器获取对象,Java 如何实现从spring容器中获取注入的bean对象
Java 如何实现从spring容器中获取注入的bean对象 发布时间:2020-11-03 15:27:37 来源:亿速云 阅读:70 作者:Leah 这期内容当中小编将会给大家带来有关Java 如 ...
- jQuery 发起 Ajax 请求最常用的三个方法
浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了 Ajax 的使用难度. ...
- 获取存储过程返回值及代码中获取返回值
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- 获取存储过程返回值及代码中获取返回值(转)
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- php发送get、post请求获取内容的几种方法
方法1: 用file_get_contents 以get方式获取内容<?php $url='http://www.domain.com/'; $html = file_get_contents( ...
- ajax请求返回的数据格式,ajax请求服务器返回json数据格式
ajax请求服务器返回json数据格式 内容精选 换一换 消息请求返回的状态码如下表所示. 使用API数据源,您可以通过调用一个第三方的REST(Representational State Tran ...
- java 反射 new区别_JAVA的newInstance()和new的区别(JAVA反射机制,通过类名来获取该类的实例化对象)...
1.在初始化一个类,生成一个实例的时候:newInstance() 和 new 有什么区别? 用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么 ...
- java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】
摘要:这篇Python开发技术栏目下的"Python实现获取汉字偏旁部首的方法示例[测试可用]",介绍的技术点是"Python实现.Python.偏旁部首.测试.可用.示 ...
最新文章
- linux双机脚本pkg如何生效,linux里命令pkg config工具的使用
- C# 动态调用webservice代码
- char几个字节java_java中的char占几个字节实例分析
- hdu 3746 Cyclic Nacklace
- Linux下排查进程占用cpu高的问题
- 做一个完整的Java Web项目需要掌握的技能
- ide快捷键_一款好用的IDE怎么可以没有代码提示?
- 内核态(Kernel Mode)与用户态(User Mode)
- ALC--软件定义架构的PLC
- python 热力图_python高维数据型图表热力图、树形图
- [转载] arrayproxy转numpy_Python numpy.ptp() 使用实例
- 计算机图形学 全局光照及方法,实时全局光照渲染研究
- 教师计算机技术培训内容,2019教师计算机培训计划
- Android VLC 加载ass字幕乱码问题
- SOPCAST所有频道的地址
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xfe in position 198369: illegal multibyte sequenc
- 什么是pisa测试_PISA测试是什么?
- 【计算机数学】二次规划(QP)问题
- UVa 10306 - e-Coins
- 骏马淘金~~网赚不走弯路
热门文章
- 为何我中断执行的线程不起作用,Why
- 物联网通信技术,那些你不知道的事
- 从中心到边缘,IoT正变为互联网之上的一张大网
- Vue+ElementUI项目使用webpack输出MPA【华为云分享】
- 多云架构落地设计和实施方案【华为云分享】
- 华为云备案服务全面升级,EI助力带来极速体验
- HTML5唐诗三百首,《唐诗三百首》中王维5首五言绝句,代表了盛唐绝句的最高成就!...
- MATLAB一维数组的创建与元素提取
- 红橙Darren视频笔记 CoordinatorLayout:实现自定义behavior
- redis 关系数据库怎么转换 和_[转]mysql和redis的区别