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却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短