`
xiaoyao8903
  • 浏览: 21539 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java使用HttpClient发送请求的几种常用方式

 
阅读更多

使用的jar包有3个,Maven中添加以下依赖:

<dependency>

<groupId>commons-httpclient</groupId>

<artifactId>commons-httpclient</artifactId>

<version>3.1</version>

</dependency>

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.2</version>

</dependency>

<dependency>

<groupId>commons-codec</groupId>

<artifactId>commons-codec</artifactId>

<version>1.9</version>

</dependency>

1第一种:普通的Get/Post请求,Get请求可以带参数(无需登陆)

public static String GetHtttpLink(String path) throws Exception {

HttpClient client = new HttpClient();// 打开新窗口

GetMethod get = new GetMethod(path);//path是请求地址,可以带参数

int st1 = client.executeMethod(get);

logger.info("执行状态:" + st1);

String result = get.getResponseBodyAsString();//服务端返回的Response

get.releaseConnection();//释放链接

return result;

}

public static String PostHtttpLink(String path) throws Exception {

HttpClient client = new HttpClient();// 打开新窗口

PostMethod po = new PostMethod(path);

int st1 = client.executeMethod(po);

logger.info("执行状态:" + st1);

String result = po.getResponseBodyAsString();//服务端返回的Response

po.releaseConnection();

return result;

}

第二种:带多个参数的Post请求 (无需登陆)

public static String PostWithParas() {

HttpClient client = new HttpClient();

PostMethod postMethod = new PostMethod("http://127.0.0.1:8080/userrz");

NameValuePair param1 = new NameValuePair("id", "XXX");//参数1

NameValuePair param2 = new NameValuePair("time", "XXXXXX");//参数2

NameValuePair param3 = new NameValuePair("url", "XXXXXX");//参数3

NameValuePair param4 = new NameValuePair("msg", "XXX");参数4 postMethod.setRequestBody(new NameValuePair[]{param1, param2, param3, param4 });//设置参数

String result="";

try {

client.executeMethod(postMethod);//执行请求

result = postMethod.getResponseBodyAsString();//获取返回的Response

} catch (IOException e) {

e.printStackTrace();

}

postMethod.releaseConnection();//释放链接

}

第三种:带Cookies请求认证,访问网站内部某个页面(需要登陆,用户名密码认证)

public static String GetLink(String Corpcode, String Code) throws Exception {

HttpClient client = new HttpClient();// 打开新窗口

client.getHostConfiguration().setHost("localhost", 8080);// 配置

// 模拟手动登录页面,login是处理登陆的action

PostMethod post = new PostMethod("/login");

NameValuePair username = new NameValuePair("username", "admin");//用户名

NameValuePair pass = new NameValuePair("password", "admin123");//密码

post.setRequestBody(new NameValuePair[] { username, pass });

int status = client.executeMethod(post);

System.out.println("执行状态:" + status + ",返回状态:" + post.getStatusLine(); post.releaseConnection();

// 查看 cookie,并传递Cookies到服务器认证

CookieSpec cookiespec = CookiePolicy.getDefaultSpec();

Cookie[] cookies = cookiespec.match("localhost", 8080, "/", false, client.getState().getCookies());

if (cookies.length == 0) {

System.out.println("没有Cookies");

} else {

for (int i = 0; i < cookies.length; i++) {

System.out.println("Cookies:" + cookies[i].toString());

}

}

// 因为前面已经登陆了,也加入了Cookies,所以才可以直接访问这个地址

GetMethod get = new GetMethod("/user");//这个才是需要访问的真正action

int stats = client.executeMethod(get);

String result = get.getResponseBodyAsString();

System.out.println("Get请求:" + result);

get.releaseConnection();

return result;

}

分享到:
评论

相关推荐

    HttpClient发送post请求传输json数据

    要使用HttpClient发送POST请求,你需要以下几个步骤: 1. **导入依赖**:确保你的项目中包含了HttpClient的相关库。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    后台模拟发送GET和POST请求

    使用HttpClient模拟GET和POST请求,主要涉及以下几个步骤: 1. 创建HttpClient实例:这是所有操作的基础,通过`HttpClientBuilder`或`HttpClients`类可以创建HttpClient对象。 ```java CloseableHttpClient ...

    使用httpClient访问https+443端口号。

    6. **执行请求**:使用HttpClient实例的`execute`方法发送请求,并获取`HttpResponse`。 7. **处理响应**:解析`HttpResponse`,获取状态码,读取响应体,可能需要使用`EntityUtils`类。 8. **关闭连接**:记得在...

    HttpClient 学习精髓

    可以通过以下几种方式来获取并集成HttpClient: 1. **从官网下载源码包**:访问官方地址[http://jakarta.apache.org/commons/httpclient/downloads.html]...

    Java使用HttpClient和HtmlParser实现的爬虫Demo.zip

    爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...

    一个面向对象风格的JavaHTTPClient

    面向对象风格的Java HTTP客户端提供了一种更直观、更易于理解和维护的方式来执行HTTP请求并处理响应。在Java开发中,有多种实现这种功能的库,如Apache HttpClient、OkHttp和Java内置的HttpURLConnection。本节将...

    httpclient-4.5.3 api 中文版

    10. **拦截器**:HttpClient 允许使用`HttpRequestInterceptor`和`HttpResponseInterceptor`来在请求发送前或响应接收后添加自定义逻辑,这对于日志记录、请求修改或特殊处理非常有用。 HttpClient 4.5.3的文档...

    Java Https请求,跳过证书,直接访问

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种用于在互联网上安全传输数据的协议,它基于HTTP,但提供了额外的安全性层,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密...

    java通过飞信发送免费短信

    Java通过飞信发送免费短信是一种常见的通信方式,尤其在企业应用或者个人项目中,用于实现低成本的批量消息发送。飞信是中国移动推出的一款即时通讯软件,支持短信、语音等多种通信方式,而通过Java来模拟HTTP请求与...

    HTTPClient

    HttpClient提供了几种方式来实现这一功能。 **3.2 中止GET请求** 如果发送的是GET请求,可以使用`AbortableHttpRequest`接口来取消请求: ```java AbortableHttpRequest abortableRequest = new HttpGet(...

    httpclient 获取技术博客列表

    HttpClient是一个Java库,它提供了一种丰富的API来执行HTTP请求,包括GET、POST等方法,用于从网页抓取数据。在本例中,可能是通过发送HTTP GET请求到特定的博客聚合网站或RSS feed,来获取并解析返回的博客列表。 ...

    HttpClient类所需jar包

    在使用HttpClient进行网络请求时,通常需要以下几种核心的JAR包: 1. **httpclient.jar**:这是HttpClient的主要库,包含了所有基本的HTTP请求和响应处理功能。这个JAR包提供了HttpClient的核心类,如`...

    java发起http请求提交表单

    虽然上面的代码片段中并没有直接使用Java来模拟HTTP POST请求,但在实际应用中,通常会采用以下几种方式: - **使用HttpURLConnection类**:这是最基础的方法,通过创建一个`HttpURLConnection`对象,设置请求方法...

    WebService调用的几种方式

    本文将深入探讨在Java环境中调用WebService的五种主要方式:Axis、CXF、HttpClient、MyEclipse反向生成以及XFire。 1. Axis:Apache Axis是最早且广泛使用的SOAP库,用于创建和消费Web服务。使用Axis调用WebService...

    httpClient.zip

    首先,HttpClient的使用通常包括以下几个步骤: 1. 创建HttpClient实例:HttpClient是执行HTTP请求的核心对象,可以通过`HttpClientBuilder`或`HttpAsyncClientBuilder`构建。 2. 构建HTTP请求方法:GET请求使用`...

    HttpClient

    4. **获取响应内容**:可以通过以下几种方式获取响应数据: - `getMethod().getResponseBody()`:返回响应体的 byte 数组。 - `getMethod().getResponseBodyAsString()`:返回字符串形式的响应体,默认采用系统的...

    爬虫:httpclient+jsoup

    本文将详细探讨使用Java中的两种库——HttpClient和Jsoup,以及它们结合使用来构建网页爬虫的方法。 HttpClient是Apache软件基金会的一个项目,提供了对HTTP协议的全面支持,包括请求/响应模型、连接管理、重定向...

    httpclient

    4. **发起HTTPS请求**:现在你可以使用这个HttpClient实例来发送HTTPS请求。例如,一个简单的GET请求如下: ```java HttpGet httpGet = new HttpGet("https://example.com"); CloseableHttpResponse response = ...

    Httpclient依赖包

    7. **请求/响应拦截器**:HttpClient提供了请求和响应拦截器接口,允许在请求发送前和响应接收后进行自定义处理,如添加额外的请求头、修改请求内容、处理响应状态等。 8. **HTTP协议兼容性**:HttpClient遵循...

    java实现读取证书访问https接口

    然后,在`testUtils.java`中,可能包含了一些测试和辅助函数,比如创建`HttpsURLConnection`或`HttpClient`实例,设置SSL上下文,以及进行HTTP请求的逻辑: ```java public class TestUtils { public static ...

Global site tag (gtag.js) - Google Analytics