java发送http get请求的两种方式
长话短说,废话不说
一、第一种方式,通过HttpClient方式,代码如下:
publicstaticStringhttpGet(Stringurl,Stringcharset) throwsHttpException,IOException{ Stringjson=null; HttpGethttpGet=newHttpGet(); //设置参数 try{ httpGet.setURI(newURI(url)); }catch(URISyntaxExceptione){ thrownewHttpException("请求url格式错误。"+e.getMessage()); } //发送请求 HttpResponsehttpResponse=client.execute(httpGet); //获取返回的数据 HttpEntityentity=httpResponse.getEntity(); byte[]body=EntityUtils.toByteArray(entity); StatusLinesL=httpResponse.getStatusLine(); intstatusCode=sL.getStatusCode(); if(statusCode==200){ json=newString(body,charset); entity.consumeContent(); }else{ thrownewHttpException("statusCode="+statusCode); } returnjson; }
二、第二种方式,通过流的形式,贴代码:
/** *发送httpget请求 * *@paramgetUrl *@return */ publicStringsendGetRequest(StringgetUrl) { StringBuffersb=newStringBuffer(); InputStreamReaderisr=null; BufferedReaderbr=null; try { URLurl=newURL(getUrl); URLConnectionurlConnection=url.openConnection(); urlConnection.setAllowUserInteraction(false); isr=newInputStreamReader(url.openStream()); br=newBufferedReader(isr); Stringline; while((line=br.readLine())!=null) { sb.append(line); } } catch(IOExceptione) { e.printStackTrace(); } finally { fileOperator.closeResources(isr,br); } returnsb.toString(); } }
这两种实现方式不同,怎么使用看个人喜好吧,不过我在项目开发过程中,使用流的方式部署在预发机(linux机器)上会出现返回null的情况,但是本地windows却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。