java发起http请求获取返回的Json对象方法
话不多说,先看代码!
/** *Createdbydavidon2017-7-5. */ importcom.google.gson.JsonObject; importcom.google.gson.JsonParser; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.net.HttpURLConnection; importjava.net.URL; publicclassHttpRequestUtil{ /** *发起http请求并获取结果 *@paramrequestUrl请求地址 */ publicstaticJsonObjectgetXpath(StringrequestUrl){ Stringres=""; JsonObjectobject=null; StringBufferbuffer=newStringBuffer(); try{ URLurl=newURL(requestUrl); HttpURLConnectionurlCon=(HttpURLConnection)url.openConnection(); if(200==urlCon.getResponseCode()){ InputStreamis=urlCon.getInputStream(); InputStreamReaderisr=newInputStreamReader(is,"utf-8"); BufferedReaderbr=newBufferedReader(isr); Stringstr=null; while((str=br.readLine())!=null){ buffer.append(str); } br.close(); isr.close(); is.close(); res=buffer.toString(); JsonParserparse=newJsonParser(); object=(JsonObject)parse.parse(res); } }catch(IOExceptione){ e.printStackTrace(); } returnobject; } publicstaticJsonObjectpostDownloadJson(Stringpath,Stringpost){ URLurl=null; try{ url=newURL(path); HttpURLConnectionhttpURLConnection=(HttpURLConnection)url.openConnection(); httpURLConnection.setRequestMethod("POST");//提交模式 //conn.setConnectTimeout(10000);//连接超时单位毫秒 //conn.setReadTimeout(2000);//读取超时单位毫秒 //发送POST请求必须设置如下两行 httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); //获取URLConnection对象对应的输出流 PrintWriterprintWriter=newPrintWriter(httpURLConnection.getOutputStream()); //发送请求参数 printWriter.write(post);//post的参数xx=xx&yy=yy //flush输出流的缓冲 printWriter.flush(); //开始获取数据 BufferedInputStreambis=newBufferedInputStream(httpURLConnection.getInputStream()); ByteArrayOutputStreambos=newByteArrayOutputStream(); intlen; byte[]arr=newbyte[1024]; while((len=bis.read(arr))!=-1){ bos.write(arr,0,len); bos.flush(); } bos.close(); JsonParserparse=newJsonParser(); return(JsonObject)parse.parse(bos.toString("utf-8")); }catch(Exceptione){ e.printStackTrace(); } returnnull; } //测试 publicstaticvoidmain(Stringargs[]){ JsonObjectres=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对象方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。