`

HttpClient发送请求到服务端

 
阅读更多
/**
     * 向指定 URL 发送POST方法的请求
     * @param url 发送请求的 URL
     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return 所代表远程资源的响应结果
     */
    public static String sendPost(String jsh, String url, String param, String charset, Map<String, String> requestPropertyMap) throws MyFPException {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            logger.info("Start 结算号【".concat(jsh).concat("】").concat(", HttpClientUtil.sendPost(String urlStr, ICBCReqHead iCBCReqHead)开始支调用工行支付接口操作, 当前时间【".concat(DateUtil.dateToString(new Date(), DateUtil.FORMAT_DATETIME)).concat("】")));
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置连接超时和读取超时
            connection.setConnectTimeout(30 * 1000);
            connection.setReadTimeout(60 * 1000);
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            for(Iterator<Map.Entry<String, String>> it = requestPropertyMap.entrySet().iterator(); it.hasNext();){
                Map.Entry<String, String> entry = it.next();
                connection.setRequestProperty(entry.getKey(), entry.getValue());
            }
            // 发送POST请求必须设置如下两行
            connection.setDoOutput(true);
            connection.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(new OutputStreamWriter(connection.getOutputStream(), charset));
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"GB2312"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            logger.info("End 结算号【".concat(jsh).concat("】").concat(", HttpClientUtil.sendPost(String urlStr, ICBCReqHead iCBCReqHead)结束支调用工行支付接口操作, 当前时间【".concat(DateUtil.dateToString(new Date(), DateUtil.FORMAT_DATETIME)).concat("】")));
            return result;
        } catch (MalformedURLException e) {
            logger.error("工行支付签名接口URL协议、格式或者路径异常!", e);
            throw new MyFPException("-1", "工行支付签名接口URL协议、格式或者路径异常!", e);
        } catch (UnsupportedEncodingException e) {
            logger.error("工行支付读写文本字符串转换异常!", e);
            throw new MyFPException("-1", "工行支付读写文本字符串转换异常!", e);
        } catch (IOException e) {
            logger.error("工行支付签名接口打开Http连接异常!", e);
            throw new MyFPException("-1", "工行支付签名接口打开Http连接异常!", e);
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException e) {
                logger.error("Exception is happened!", e);
            }
        }
    }

 

分享到:
评论

相关推荐

    httpclient发送post请求

    本篇文章将深入探讨如何使用HTTPClient发送POST请求,以及相关的项目结构和实现细节。 首先,"post-demo"项目定义了我们需要调用的接口。通常,这会是一个Web服务,可能是一个RESTful API,提供特定的功能或数据。...

    httpclient 客户端发送xml报文到服务器端采用post方式(加密)传递

    接下来,使用HTTPClient发送POST请求。首先,需要初始化HttpClient实例,设置连接参数,然后创建HttpPost对象,指定服务器URL。接着,将XML字符串转换为HttpEntity,作为请求体: ```java CloseableHttpClient ...

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    java 调用webservice使用HttpClient和XFire两种方式

    调用Web Service时,我们可以通过HttpClient发送POST请求,携带SOAP消息体来完成调用。以下是一段简单的HttpClient调用Web Service的代码示例: ```java CloseableHttpClient httpClient = HttpClients.create...

    httpclient和RestfuL风格上传下载文件

    它们解释了如何使用HTTPClient发送请求,如何构造RESTful接口,以及如何处理分布式环境下的特定问题。良好的注释可以使代码更易读,有助于团队协作和维护。 综上所述,HTTPClient和RESTful风格的文件上传下载在Java...

    如何使用HttpClient发送java对象到服务器

    使用HttpClient发送Java对象到服务器 在软件开发中,经常需要将Java对象发送到服务器,以便于数据交换和处理。使用Apache HttpClient库可以轻松地实现这一功能。本文将详细介绍如何使用HttpClient发送Java对象到...

    httpclient模拟post请求json封装表单数据的实现方法

    在服务端,比如使用 Servlet 处理这些请求,对于 JSON 数据,我们需要使用 JSON 解析库来解析接收到的流。如提到的,可以选择阿里巴巴的 Fastjson 或谷歌的 Gson。Fastjson 效率较高,适合一般情况;而 Gson 在解析...

    两个系统之间发送文件客户端和服务端

    HTTPClient库(如Apache HttpClient)提供了一套接口和工具,使得客户端可以方便地构造和发送HTTP请求,同时服务端也可以接收和响应这些请求。在配置文件中,你需要确保已经包含了正确的HttpClient版本以及其他必要...

    C#中客户端通过http协议访问服务端

    以下是一个简单的示例,展示了如何使用HttpClient发送GET请求到服务端,并接收返回的结果: ```csharp using System; using System.Net.Http; using System.Threading.Tasks; public class Client { private ...

    jsp 中HttpClient中的POST方法实例详解

    POST方法用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列(Request-Line)中请求URI所指定资源的附加新子项。POST被设计成用统一的方法实现下列功能: 对现有资源的注释 向电子公告...

    springboot整合httpClient代码实例

    在实际开发中,我们经常需要向外部服务发送请求,获取数据或执行某些操作,这时我们需要使用 HttpClient 来发送 HTTP 请求。HttpClient 是一个强大且灵活的工具,提供了丰富的功能,例如支持多种协议、连接池、超时...

    android客户端GET请求服务端

    可以使用`try-catch`语句捕获异常,并实现重试机制,如使用递归或循环尝试重新发送请求。 五、最佳实践 1. 使用异步请求:为了防止阻塞主线程,通常使用`AsyncTask`、`Handler`、`Thread`或现代库如`Retrofit`、`...

    httpClient 网络传输的实例

    5. **执行请求**:使用HttpClient对象的execute方法发送请求。 ```java HttpResponse response = httpClient.execute(httpGet); Future&lt;HttpResponse&gt; futureResponse = httpClient.execute(httpPost, new ...

    httpclient4.5.6依赖的jar包(全)

    在本文中,我们将深入探讨HTTPClient 4.5.6版本及其依赖的jar包,以及如何利用它进行客户端请求服务端的开发。 首先,HTTPClient 4.5.6是一个成熟的HTTP客户端实现,它支持多种HTTP标准,包括HTTP/1.1和部分HTTP/2...

    C#发送并获取请求的内容,得到源代码

    以下是如何使用`HttpClient`发送GET请求并获取HTML源代码的基本步骤: 1. **创建HttpClient实例**:首先,你需要创建一个`HttpClient`对象。这是一个轻量级的类,可以复用以减少网络资源的消耗。 ```csharp ...

    HttpClient jar包,快来拿呀

    - **预连接**(Pipelining):预发送请求到服务器,提高并发性能。 - **Keep-Alive**:保持持久连接,减少握手开销。 9. **异步编程**: - HttpClient 4.5引入了异步API,基于Future和Callback模型,可以并行...

    httpclient客户端jar.rar

    例如,通过HttpClient可以创建一个HTTP GET请求来获取网页内容,或者使用POST方法发送JSON或XML数据到服务器。HttpCore则在幕后处理网络连接的细节,而HttpMime帮助处理复杂的请求体内容。 HttpClient的配置是可...

    HttpClient的简单使用,get、post、上传、下载

    HttpClient发送GET请求的基本步骤包括创建HttpClient对象、构建HttpGet请求、执行请求并获取响应: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...

    HttpClient中的client和server相互调用的两个例子

    - 接收请求:Servlet会监听特定端口,接收到HttpClient发送的请求后,通过`HttpServletRequest`对象获取请求信息。 - 处理请求:根据请求内容执行相应的业务逻辑,如数据库操作、计算等。 - 响应客户端:使用`...

Global site tag (gtag.js) - Google Analytics