javaがhttp get要求を送信する2つの方法(まとめ)
長話はさておき,むだ話はさておき
一、第一の方式は、HttpClient方式を通じて、コードは以下の通りです。
以上のjavaはhttp getの要求の2つの方法を発送しました。つまり、小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。
一、第一の方式は、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の要求の2つの方法を発送しました。つまり、小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。