`
菜鸟级JAVA
  • 浏览: 96201 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

java Http工具类(get、post请求)

阅读更多
package util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;
import com.hzlq.gdlh.dto.ReqResult;

public class HttpClient {
private static Logger logger = LoggerFactory.getLogger(HttpClient.class);
private static final int timeoutConnection = 60000;
private static final int timeoutSocket = 60000;

public static HttpResponse get(String url) throws Exception {
url=url.replace(" ", "%20");
logger.debug("=====http get url[{}]=====", url);
HttpParams myParams = new BasicHttpParams();
// 2s连接不上就超时
HttpConnectionParams.setConnectionTimeout(myParams, 20 * 1000);
// 300s数据读取未完成,超时
HttpConnectionParams.setSoTimeout(myParams, 300 * 1000);
DefaultHttpClient client = new DefaultHttpClient(myParams);
HttpResponse response = null;
try {
HttpGet get = new HttpGet(url);
response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
logger.debug("====http get url[{}] success====", url);
} else {
logger.error("====返回状态错误:\n{}====", response.toString());
throw new Exception("http get请求失败");
}
} catch (UnsupportedEncodingException e) {
logger.error("请求外部服务[{}]失败", url);
logger.error("ERROR", e);
throw e;
} catch (ClientProtocolException e) {
logger.error("请求外部服务[{}]失败", url);
logger.error("ERROR", e);
throw e;
} catch (Exception e) {
logger.error("请求外部服务[{}]失败", url);
logger.error("ERROR", e);
throw e;
} finally {
client.getConnectionManager().shutdown();
return response;
}

}
/*
ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
pairs.add(new BasicNameValuePair(参数1,值1));
pairs.add(new BasicNameValuePair(参数2,值2));
pairs.add(new BasicNameValuePair(参数3,值3));
pairs.add(new BasicNameValuePair(参数4,值4));
*/
public static ReqResult post(String url , ArrayList<BasicNameValuePair> pairs) throws Exception {
HttpPost httpPost = new HttpPost(url);
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,
timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpclient = new DefaultHttpClient(httpParameters);
HttpResponse httpResponse;
try {
httpPost.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8")); //
httpResponse = httpclient.execute(httpPost);
int status = httpResponse.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
logger.error("调用企业的统一http接口出错,返回的status:" + status);
} else {
InputStream inStream = null;
BufferedReader reader = null;
try {
inStream = httpResponse.getEntity().getContent();
reader = new BufferedReader(new InputStreamReader(inStream,
"utf-8"));
StringBuilder strber = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
strber.append(line);
}
logger.info("调用企业的统一http接口 返回信息 result:" + strber);
ReqResult res = JSON.parseObject(strber.toString(),
ReqResult.class);
return res;
} catch (Exception e) {
logger.error("", e);
} finally {
if (inStream != null) {
inStream.close();
}
if (reader != null) {
reader.close();
}
}

}
} catch (UnsupportedEncodingException e1) {
logger.error("", e1);
} catch (ClientProtocolException e1) {
logger.error("", e1);
} catch (IOException e1) {
logger.error("", e1);
} finally {
if (httpclient != null) {
httpclient.getConnectionManager().shutdown();
}
}
return null;
}

}
分享到:
评论

相关推荐

    https的get和post请求,去除ssl校验的java工具类

    java的get和post请求,获取json的工具类,https时会存在ssl校验的问题,工具会自动去除ssl校验。

    http发送Get和Post请求工具类

    本文将详细介绍一个封装了HTTP GET和POST请求的工具类,以及如何使用此类进行网络请求。该工具类支持HTTPS,确保数据传输的安全性。 首先,我们来看`HttpUtils`类,这是核心的网络请求工具类。在`HttpUtils`中,...

    Https请求工具类,Java实现http请求,https请求

    本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用HttpURLConnection类可以实现Http和Https请求,但是对于...

    HttpUtils Java get post 工具类

    总结,"HttpUtils Java get post 工具类"是用于简化Java中HTTP GET和POST请求的实用工具,它还支持小文件的发送。通过这个工具类,开发者可以快速地进行网络请求,而无需关注底层HTTP连接的复杂性。同时,通过测试类...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    Java发送post,get请求

    java模拟HTTP发送post和get请求工具类,使用httpClient类

    JAVA 发送http请求工具类

    本文将详细解析如何使用Java实现HTTP和HTTPS的GET与POST请求,并结合提供的类文件名称(HttpsHandler.java、HttpUtil.java、NetUtil.java)探讨可能的实现方式。 首先,`HttpUtil`类通常用于封装HTTP请求的操作。在...

    Java实现的Https请求工具类

    对于POST请求,需要先写入请求体,然后读取响应。 ```java connection.connect(); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = ...

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    HttpClient是Java中用于执行HTTP请求的一个强大库,它提供了丰富的功能,可以方便地进行GET、POST请求,并且能够处理复杂的网络交互,包括发送文件等操作。下面我们将详细讨论HttpClientUtil工具类如何实现这些功能...

    Java Https工具类,Java Https Post请求

    - `HttpsClientUtil.java`文件很可能是实现了上述功能的一个工具类,可能包含`post`方法,用于发送POST请求。 - 这个类可能会包含初始化`SSLContext`、创建`HttpsURLConnection`实例、设置请求参数、发送数据、...

    http的post请求跟get请求工具类

    http的post请求跟get请求工具类,传入参数就能进行调用,以及返回接口值

    httpclient get/post请求工具类(map参数封装)

    httpclient get/post请求工具类(map参数封装),方便调用

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...

    Java Http发起get和post请求

    总之,Java中发起HTTP GET和POST请求有多种方式,HttpURLConnection是Java标准库的一部分,而HttpClient提供更强大的功能。实际开发中,根据项目需求选择合适的工具,并确保正确处理异常和资源关闭,以保证代码的...

    Java发 Https请求工具类 支持SSL

    4. **Java HTTPS工具类**: 工具类封装了HTTPS请求的实现细节,包括证书管理、SSL上下文配置等,使得开发者无需深入了解底层实现即可方便地发送HTTPS请求。 5. **SSL配置**: 在Java中,为了支持SSL,需要设置`SSL...

    java http 发送 put delete post get请求

    在给定的压缩包中,`8744277_RestfulRequestHelper.java` 文件很可能包含了一个名为`RestfulRequestHelper`的工具类,该类可能封装了上述HTTP请求的实现,方便开发者调用。`no.txt`文件可能是无关的,或者是一个占位...

    后台模拟发送GET和POST请求

    本文将深入探讨如何利用Java的HttpClient库在后台模拟发送GET和POST请求,以及如何处理中文乱码问题。 首先,我们来理解GET和POST两种请求方法。GET请求通常用于获取服务器上的资源,它将参数附加到URL中,具有可...

    Java实现HTTP(GET、POST)请求

    总的来说,Java中实现HTTP GET和POST请求涉及到网络连接、数据传输和解析响应等关键步骤。通过使用标准Java库或第三方库,开发者可以方便地处理各种复杂的网络请求场景。在实际项目中,根据需求选择合适的方法和工具...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    - `httpmime.jar`:用于处理多媒体内容和表单数据,特别适用于POST请求。 - `commons-logging.jar`:日志服务抽象层,用于HttpClient的日志输出。 这些库可以通过Maven或Gradle等构建工具轻松管理,或者手动下载...

    java发送http请求工具类

    本篇文章将详细讲解一个简单的Java工具类,用于发送HTTP请求,该工具类名为HttpURLUtils。 首先,让我们理解HTTP协议的基本概念。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义了客户端(如...

Global site tag (gtag.js) - Google Analytics