package com.test.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
*
* 依赖 commons-httpclient-3.1.jar commons-codec-1.4.jar
* @author tianjun
*
*/
public class PostTest
{
public static void main(String[] args)
{
// (1)构造HttpClient的实例
HttpClient httpClient = new HttpClient();
// (2)创建POST方法的实例
PostMethod postMethod = new PostMethod(
"http://localhost:8080/b/test1.do");
// GetMethod getMethod = new
// GetMethod("http://localhost:8080/b/test1.do");
// (3)设置http request头
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("tianjun_key", "tianjun_value"));
httpClient.getHostConfiguration().getParams().setParameter(
"http.default-headers", headers);
// 使用系统提供的默认的恢复策略
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
// getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
// new DefaultHttpMethodRetryHandler());
try
{
// (4)执行postMethod
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != HttpStatus.SC_OK)
{
System.err.println("Method failed: "
+ postMethod.getStatusLine());
}
// (5)读取response头信息
Header headerResponse = postMethod
.getResponseHeader("response_key");
String headerStr = headerResponse.getValue();
// (6)读取内容
byte[] responseBody = postMethod.getResponseBody();
// (7) 处理内容
System.out.println(headerStr);
System.out.println(new String(responseBody));
} catch (HttpException e)
{
// 发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} catch (Exception e)
{
e.printStackTrace();
} finally
{
// 释放连接
postMethod.releaseConnection();
}
}
}
分享到:
相关推荐
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...
下面是一个POST请求的例子,包括设置请求头和请求体: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache....
本篇将详细介绍如何使用HttpClient发送HTTP请求,包括POST和GET方法,同时提供相关的jar包依赖以及Java代码示例,并对关键代码进行注解解释。 一、HttpClient库的引入 在Java项目中,首先需要添加HttpClient的jar包...
这段代码创建了一个HttpClient实例,发送一个GET请求到指定的URL,然后读取并返回响应的内容。 **POST请求示例:** ```csharp public async Task<string> SendHttpPostRequest(string url, string postData) { ...
通过`java_httpclient_post`这个文件名,我们可以推测其中可能包含了完整的示例代码或者相关教程,你可以参考这个文件来实践和学习HttpClient的POST请求使用。记住,实践是检验理论的最好方式,尝试运行这个例子,看...
在Java编程中,`HttpClient` 是一个非常重要的库,它允许开发者执行HTTP请求,包括GET、POST等。这里我们详细探讨一下如何使用`HttpClient`发送POST请求,以及这个过程中的关键知识点。 首先,我们创建一个`...
以下是一个使用HttpClient发送POST请求的例子: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://example.com"); List<NameValuePair> params ...
HttpClient库是由Apache软件基金会开发的,广泛应用于各种网络通信场景,包括数据的获取、上传、下载等。本篇文章将详细介绍如何使用HttpClient进行HTTP请求,并提供一个完整的Java代码实例。 首先,我们需要引入...
**一、HttpClient的GET请求** GET请求是最基础的HTTP请求方式,用于从服务器获取资源。在HttpClient中,可以通过`HttpGet`类来创建GET请求。以下是一个简单的示例: ```java import org.apache.http.HttpResponse;...
HttpClient发送GET请求的基本步骤包括创建HttpClient对象、构建HttpGet请求、执行请求并获取响应: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...
在Java编程中,发送HTTP POST和GET请求是常见的任务,特别是在与Web服务交互或进行自动化测试时。HTTP协议是互联网上应用最广泛的一种网络协议,它定义了客户端(如浏览器或Java应用程序)如何向服务器请求数据,...
在这个"Cocos2dx Http 网络请求 例子"中,我们将深入探讨如何在Cocos2d-x环境下进行HTTP网络请求,包括GET和POST两种常见方法。 首先,我们需要理解HTTP协议的基础知识。HTTP(超文本传输协议)是互联网上应用最...
5. **执行请求**:使用HttpClient的`execute`方法发送请求,并获取`HttpResponse`对象,其中包含了服务器的响应。 6. **处理响应**:从`HttpResponse`中提取响应码、响应体等信息。可以使用`getStatusLine`获取状态...
本篇文章将详细介绍HTTPClient 4.0的使用方法,包括其核心概念、基本操作和示例代码。 一、核心概念 1. HttpClient实例:HttpClient对象是执行HTTP请求的核心,负责建立连接、发送请求和接收响应。通过`...
下面是一个使用HttpClient发送GET请求的例子: ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import ...
在本示例中,我们将深入探讨如何使用HttpClient进行POST和GET请求,以及如何设置代理。 首先,HttpClient的核心类是`CloseableHttpClient`,它是HTTP客户端的实现,负责创建和管理HTTP连接。为了发起请求,我们需要...
HttpClient库还包括了处理响应头、自定义请求头、设置超时、处理重定向等功能。它还支持多种认证机制,包括基本认证、摘要认证以及NTLM等。 压缩包中的`httpclient-4.0-alpha2.jar`文件包含了HttpClient库的所有类...
在C#编程中,发送HTTP请求是常见的网络通信任务,用于...例如,使用HttpClient发送GET请求如下: ```csharp using System.Net.Http; using System.Threading.Tasks; // ... HttpClient client = new HttpClient(); ...
以上代码展示了如何使用HTTPClient发送GET和POST请求。首先创建一个`CloseableHttpClient`实例,然后构造对应的`HttpGet`或`HttpPost`对象,设置请求URL。对于POST请求,需要添加请求参数。接着,执行请求并处理响应...
GET请求的特点是简单、快速,但不适合传递大量数据或敏感信息,因为这些信息会暴露在浏览器的历史记录和缓存中。 POST请求则是向服务器提交数据,通常用于创建新资源或更新已有资源。与GET不同,POST请求的数据包含...