首页 > 开发 > Java > 正文

java发送http get请求的两种方式

2024-07-13 10:08:09
字体:
来源:转载
供稿:网友

长话短说,废话不说

一、第一种方式,通过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却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表