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(); } }
相关推荐
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 ...通过上述示例和解释,你应该能够理解和掌握如何使用Java HttpClient库来发送GET和POST请求,这对于开发Web应用程序或与API接口交互至关重要。
本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见的HTTP请求类型,通常用于获取资源。在HttpClient中,发送GET请求可以通过`HttpGet`类实现。以下是一个简单的...
- 将HttpGet或HttpPost对象添加到HttpClient中执行。 - 获取和解析响应。 3. **示例代码**: ```java // 创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // GET请求 ...
- `HttpGet`/`HttpPost`: 分别代表HTTP GET和POST请求。 - `EntityUtils`: 提供了处理HTTP实体的方法,如将实体转换为字符串。 - `NameValuePair`: 用于封装HTTP请求中的键值对。 - `UrlEncodedFormEntity`: 表单...
在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...
HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...
首先,创建一个HttpClient对象,然后创建HttpPost实例,设置请求URL。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/api"...
HttpClient还支持添加请求头(Header)和请求参数(NameValuePair): - 添加请求头: ```java httpPost.setHeader("Content-Type", "application/json"); ``` - 添加请求参数: ```java List<NameValuePair>...
总结起来,使用Apache HTTPClient库以POST方式发送JSON数据涉及的主要步骤包括:配置HttpClient实例、创建HttpPost对象、构建JSON实体、设置请求头和执行请求。通过这种方式,你可以方便地与Web服务进行交互,传递...
在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...
HttpClient是.NET Framework和.NET Core中用于发送HTTP请求的标准库,它提供了异步和同步的API,适用于各种网络操作,如GET、POST、PUT等。 描述中的链接指向了一个具体的博客文章,该文章详细解释了如何在C#项目中...
例如,`CloseableHttpClient`是客户端的顶级接口,`HttpGet`和`HttpPost`代表不同的HTTP方法。内部的`HttpRequestBase`类是所有请求的基类,提供了基本的配置选项。而`HttpEntity`接口则表示HTTP消息的主体。 ...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中...通过理解和实践上述示例,你将能够熟练地使用HttpClient进行GET和POST请求,同时也可以探索其更深层次的功能,以满足复杂的网络通信需求。
- 使用HttpClient实例执行HttpPost对象代表的请求。 - 获取HttpResponse对象,其中包含了服务器的响应。 6. **处理响应**: - 从HttpResponse对象中提取HttpEntity对象。 - 如果HttpEntity不为空,则使用`...
在上述代码中,我们使用了`HttpClients.createDefault()`创建默认的HttpClient实例,然后创建`HttpGet`或`HttpPost`对象,设置URL和请求头。对于POST请求,还需设置请求体。执行请求后,我们从响应中获取实体,并将...
以下是一些基本的示例代码片段,展示了如何使用HttpClient发送GET和POST请求: ```java // GET请求示例 CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...
在这个示例中,我们将深入探讨如何使用 HttpClient 来发送 POST 请求,以及涉及的相关知识点。 首先,我们需要在项目中引入必要的依赖。`httpclient` 和 `httpcore` 是 HttpClient 库的主要依赖,而 `json`(如 ...