`
JavaCrazyer
  • 浏览: 3011699 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

HttpClient之Get请求和Post请求示例

 
阅读更多

HttpClient的支持在HTTP/1.1规范中定义的所有的HTTP方法:GET, HEAD, POST, PUT, DELETE, TRACE 和 OPTIONS。每有一个方法都有一个对应的类:HttpGet,HttpHead,HttpPost,HttpPut,HttpDelete,HttpTrace和HttpOptions。所有的这些类均实现了HttpUriRequest接口,故可以作为execute的执行参数使用。请求URI是能够应用请求的统一资源标识符。 HTTP请求的URI包含一个协议计划protocol scheme,主机名host name,,可选的端口optional port,资源的路径resource path,可选的查询optional query和可选的片段optional fragment。

 

head,put,delete,trace HttpClient支持这些方法,
大多数浏览器不支持这些方法,原因是Html 4中对 FORM 的method方法只支持两个get和post,很多浏览器还都依然是基于html4的。

 

通常会在JAVA中通过代码调用URL进行远端方法调用,这些方法有的是Get请求方式的,有的是POST请求方式的,为此,总结一例,贴出以便查阅。

依赖JAR包如下图:



 

示例代码:

package com.wujintao.httpclient;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.junit.Test;

public class TestCase {

	@Test
	public void testGetRequest() throws IllegalStateException, IOException {
		HttpClient client = new HttpClient();
		StringBuilder sb = new StringBuilder();
		InputStream ins = null;
		// Create a method instance.
		GetMethod method = new GetMethod("http://www.baidu.com");
		// Provide custom retry handler is necessary
		method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler(3, false));
		try {
			// Execute the method.
			int statusCode = client.executeMethod(method);
			System.out.println(statusCode);
			if (statusCode == HttpStatus.SC_OK) {
				ins = method.getResponseBodyAsStream();
				byte[] b = new byte[1024];
				int r_len = 0;
				while ((r_len = ins.read(b)) > 0) {
					sb.append(new String(b, 0, r_len, method
							.getResponseCharSet()));
				}
			} else {
				System.err.println("Response Code: " + statusCode);
			}
		} catch (HttpException e) {
			System.err.println("Fatal protocol violation: " + e.getMessage());
		} catch (IOException e) {
			System.err.println("Fatal transport error: " + e.getMessage());
		} finally {
			method.releaseConnection();
			if (ins != null) {
				ins.close();
			}
		}
		System.out.println(sb.toString());
	}

	@Test
	public void testPostRequest() throws HttpException, IOException {
		HttpClient client = new HttpClient();
		PostMethod method = new PostMethod("http://www.baidu.com/getValue");
		method.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded;charset=gb2312");
		NameValuePair[] param = { new NameValuePair("age", "11"),
				new NameValuePair("name", "jay"), };
		method.setRequestBody(param);
		int statusCode = client.executeMethod(method);
		System.out.println(statusCode);
		method.releaseConnection();
	}

}
  • 大小: 3.6 KB
1
10
分享到:
评论
1 楼 zhangspirng012 2014-07-13  
客户端测试代码,这样写难道不会出现401错误,认证通不过?

相关推荐

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

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 ...通过上述示例和解释,你应该能够理解和掌握如何使用Java HttpClient库来发送GET和POST请求,这对于开发Web应用程序或与API接口交互至关重要。

    httpclient发送get请求和post请求demo

    本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见的HTTP请求类型,通常用于获取资源。在HttpClient中,发送GET请求可以通过`HttpGet`类实现。以下是一个简单的...

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

    - 将HttpGet或HttpPost对象添加到HttpClient中执行。 - 获取和解析响应。 3. **示例代码**: ```java // 创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // GET请求 ...

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

    - `HttpGet`/`HttpPost`: 分别代表HTTP GET和POST请求。 - `EntityUtils`: 提供了处理HTTP实体的方法,如将实体转换为字符串。 - `NameValuePair`: 用于封装HTTP请求中的键值对。 - `UrlEncodedFormEntity`: 表单...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...

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

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

    HttpClient发送post请求传输json数据

    首先,创建一个HttpClient对象,然后创建HttpPost实例,设置请求URL。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/api"...

    HttpClient实现POST GET和文件下载

    HttpClient还支持添加请求头(Header)和请求参数(NameValuePair): - 添加请求头: ```java httpPost.setHeader("Content-Type", "application/json"); ``` - 添加请求参数: ```java List<NameValuePair>...

    对于C#(HttpClient)方式网络请求的封装

    HttpClient是.NET Framework和.NET Core中用于发送HTTP请求的标准库,它提供了异步和同步的API,适用于各种网络操作,如GET、POST、PUT等。 描述中的链接指向了一个具体的博客文章,该文章详细解释了如何在C#项目中...

    httpclient post方式发送请求

    总结起来,使用Apache HTTPClient库以POST方式发送JSON数据涉及的主要步骤包括:配置HttpClient实例、创建HttpPost对象、构建JSON实体、设置请求头和执行请求。通过这种方式,你可以方便地与Web服务进行交互,传递...

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...

    java使用HttpClient发送http请求

    例如,`CloseableHttpClient`是客户端的顶级接口,`HttpGet`和`HttpPost`代表不同的HTTP方法。内部的`HttpRequestBase`类是所有请求的基类,提供了基本的配置选项。而`HttpEntity`接口则表示HTTP消息的主体。 ...

    完整的HttpClient的get和post使用方法实例(java源代码)

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中...通过理解和实践上述示例,你将能够熟练地使用HttpClient进行GET和POST请求,同时也可以探索其更深层次的功能,以满足复杂的网络通信需求。

    使用HttpClient发送POST请求,并获取响应内容(附详细步骤).txt

    - 使用HttpClient实例执行HttpPost对象代表的请求。 - 获取HttpResponse对象,其中包含了服务器的响应。 6. **处理响应**: - 从HttpResponse对象中提取HttpEntity对象。 - 如果HttpEntity不为空,则使用`...

    HttpClient发起HTTPs请求.rar

    在上述代码中,我们使用了`HttpClients.createDefault()`创建默认的HttpClient实例,然后创建`HttpGet`或`HttpPost`对象,设置URL和请求头。对于POST请求,还需设置请求体。执行请求后,我们从响应中获取实体,并将...

    HttpClient请求之基础

    以下是一些基本的示例代码片段,展示了如何使用HttpClient发送GET和POST请求: ```java // GET请求示例 CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...

    java使用httpclient发送post请求示例

    在这个示例中,我们将深入探讨如何使用 HttpClient 来发送 POST 请求,以及涉及的相关知识点。 首先,我们需要在项目中引入必要的依赖。`httpclient` 和 `httpcore` 是 HttpClient 库的主要依赖,而 `json`(如 ...

Global site tag (gtag.js) - Google Analytics