java发送get请求_java发送http get请求的两种方法(总结)

长话短说,废话不说

一、第一种方式,通过HttpClient方式,代码如下:

public static String httpGet(String url, String charset)

throws HttpException, IOException {

String json = null;

HttpGet httpGet = new HttpGet();

// 设置参数

try {

httpGet.setURI(new URI(url));

} catch (URISyntaxException e) {

throw new HttpException("请求url格式错误。"+e.getMessage());

}

// 发送请求

HttpResponse httpResponse = client.execute(httpGet);

// 获取返回的数据

HttpEntity entity = httpResponse.getEntity();

byte[] body = EntityUtils.toByteArray(entity);

StatusLine sL = httpResponse.getStatusLine();

int statusCode = sL.getStatusCode();

if (statusCode == 200) {

json = new String(body, charset);

entity.consumeContent();

} else {

throw new HttpException("statusCode="+statusCode);

}

return json;

}

二、第二种方式,通过流的形式,贴代码:

/**

* 发送http get请求

*

* @param getUrl

* @return

*/

public String sendGetRequest(String getUrl)

{

StringBuffer sb = new StringBuffer();

InputStreamReader isr = null;

BufferedReader br = null;

try

{

URL url = new URL(getUrl);

URLConnection urlConnection = url.openConnection();

urlConnection.setAllowUserInteraction(false);

isr = new InputStreamReader(url.openStream());

br = new BufferedReader(isr);

String line;

while ((line = br.readLine()) != null)

{

sb.append(line);

}

}

catch (IOException e)

{

e.printStackTrace();

}

finally

{

fileOperator.closeResources(isr, br);

}

return sb.toString();

}

}

这两种实现方式不同,怎么使用看个人喜好吧,不过我在项目开发过程中,使用流的方式部署在预发机(linux机器)上会出现返回null的情况,但是本地windows却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。。。

以上这篇java发送http get请求的两种方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。


版权声明:本文为weixin_34524284原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。