话不多说,先看代码!

/**

* 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对象方法相关推荐

  1. java 请求url 返回数据_java后台发起get请求获取响应数据|chu

    本文实例为大家分享了java后台发起get请求获取响应数据,供大家参考,具体内容如下 学习记录: 话不多说直接上代码: package com.jl.chromeTest; import java.i ...

  2. java 从一个容器获取对象,Java 如何实现从spring容器中获取注入的bean对象

    Java 如何实现从spring容器中获取注入的bean对象 发布时间:2020-11-03 15:27:37 来源:亿速云 阅读:70 作者:Leah 这期内容当中小编将会给大家带来有关Java 如 ...

  3. jQuery 发起 Ajax 请求最常用的三个方法

    浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了 Ajax 的使用难度. ...

  4. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  5. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  6. php发送get、post请求获取内容的几种方法

    方法1: 用file_get_contents 以get方式获取内容<?php $url='http://www.domain.com/'; $html = file_get_contents( ...

  7. ajax请求返回的数据格式,ajax请求服务器返回json数据格式

    ajax请求服务器返回json数据格式 内容精选 换一换 消息请求返回的状态码如下表所示. 使用API数据源,您可以通过调用一个第三方的REST(Representational State Tran ...

  8. java 反射 new区别_JAVA的newInstance()和new的区别(JAVA反射机制,通过类名来获取该类的实例化对象)...

    1.在初始化一个类,生成一个实例的时候:newInstance() 和 new 有什么区别? 用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么 ...

  9. java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】

    摘要:这篇Python开发技术栏目下的"Python实现获取汉字偏旁部首的方法示例[测试可用]",介绍的技术点是"Python实现.Python.偏旁部首.测试.可用.示 ...

最新文章

  1. linux双机脚本pkg如何生效,linux里命令pkg config工具的使用
  2. C# 动态调用webservice代码
  3. char几个字节java_java中的char占几个字节实例分析
  4. hdu 3746 Cyclic Nacklace
  5. Linux下排查进程占用cpu高的问题
  6. 做一个完整的Java Web项目需要掌握的技能
  7. ide快捷键_一款好用的IDE怎么可以没有代码提示?
  8. 内核态(Kernel Mode)与用户态(User Mode)
  9. ALC--软件定义架构的PLC
  10. python 热力图_python高维数据型图表热力图、树形图
  11. [转载] arrayproxy转numpy_Python numpy.ptp() 使用实例
  12. 计算机图形学 全局光照及方法,实时全局光照渲染研究
  13. 教师计算机技术培训内容,2019教师计算机培训计划
  14. Android VLC 加载ass字幕乱码问题
  15. SOPCAST所有频道的地址
  16. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xfe in position 198369: illegal multibyte sequenc
  17. 什么是pisa测试_PISA测试是什么?
  18. 【计算机数学】二次规划(QP)问题
  19. UVa 10306 - e-Coins
  20. 骏马淘金~~网赚不走弯路

热门文章

  1. 为何我中断执行的线程不起作用,Why
  2. 物联网通信技术,那些你不知道的事
  3. 从中心到边缘,IoT正变为互联网之上的一张大网
  4. Vue+ElementUI项目使用webpack输出MPA【华为云分享】
  5. 多云架构落地设计和实施方案【华为云分享】
  6. 华为云备案服务全面升级,EI助力带来极速体验
  7. HTML5唐诗三百首,《唐诗三百首》中王维5首五言绝句,代表了盛唐绝句的最高成就!...
  8. MATLAB一维数组的创建与元素提取
  9. 红橙Darren视频笔记 CoordinatorLayout:实现自定义behavior
  10. redis 关系数据库怎么转换 和_[转]mysql和redis的区别