HTTPClient调用---org.apache.commons.httpclient

这个Java代码示例展示了如何使用Apache HttpClient 3.x库进行HTTP POST请求。它创建了一个`HttpClient`实例,设置了连接和读取超时,并发送了一个包含UTF-8编码文本的POST请求到`http://127.0.0.1:8889/server`。如果服务器返回状态码200,它会打印响应内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.sinoservices.edi.http;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.httpclient.params.HttpMethodParams;

/**
 * 基于Apache Httpclient3.X实现
 * 
 * @版权:SINOSERVICES 版权所有 (c) 2013
 * @author:Mars
 * @version Revision 1.0.0
 * @email:Mars.Wei@sinoservices.com
 * @see:
 * @创建日期:2017年2月23日
 * @功能说明:
 * @begin
 * @修改记录:
 * @修改后版本 修改人 修改内容
 * @2017年2月23日 Mars 创建
 * @end
 */
public class HttpClientUtil {

    public static void clientTestUtil() throws Exception {

        String httpServerURL = " http://127.0.0.1:8889/server";
        String body = "this is my test body...";

        SimpleHttpConnectionManager connectionManager = new SimpleHttpConnectionManager(true);
        // 连接超时,单位毫秒/* 连接超时 */
        connectionManager.getParams().setConnectionTimeout(60 * 1000);
        // 读取超时,单位毫秒/* 请求超时 */
        connectionManager.getParams().setSoTimeout(60000);

        // 设置获取内容编码
        connectionManager.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
        HttpClient client = new HttpClient(new HttpClientParams(), connectionManager);

        PostMethod post = new PostMethod(httpServerURL);
        // 设置请求参数的编码
        post.getParams().setContentCharset("UTF-8");

        // 服务端完成返回后,主动关闭链接
        post.setRequestHeader("Connection", "close");
        post.setRequestHeader("Content-Type", "text/plain;chartset=UTF-8");
        StringRequestEntity requestEntity;
        requestEntity = new StringRequestEntity(body, "application/x-www-form-urlencoded", "UTF-8");
        post.setRequestEntity(requestEntity);
        int sendStatus = client.executeMethod(post);
        System.err.println("Notice:if sendStatus is 200,post is success.");
        if (sendStatus == HttpStatus.SC_OK) {
            String responseResult = post.getResponseBodyAsString();
            System.err.println(responseResult);
        }
        // 释放链接
        if (post != null) {
            post.releaseConnection();
        }

        // 关闭链接
        if (connectionManager != null) {
            connectionManager.shutdown();
        }

    }

    public static void main(String[] args) throws Exception {
        clientTestUtil();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值