java HTTPclient

本文介绍了一个使用Apache HttpClient库实现的HTTP通信示例。通过该示例,客户端向服务器发送POST请求,并传递参数,服务器接收并返回响应。文章展示了客户端和服务端的完整代码。

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

我们在一般系统的通信过程中,可以用http协议进行通信。比如一个j2ee项目和一个j2se项目之间进行通信。我们可以使用httpclient方法。看例子:

首先用的jar包:

commons-logging-1.0.4.jar

commons-codec-1.8.jar

commons-httpclient-3.1.jar

这三个jar

 

这是httpclient例子方法

package com.sysc.xmleditor.httpClient;

 

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.URL;

import java.net.URLEncoder;

 

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.params.HttpMethodParams;

 

public class FontAPIHandle {

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

String str="http://localhost:8080/shuju/font";

String s=getContent(str, "哈哈");//设置要传输的参数

System.out.println(s);

    }  

 

/**

* 返回接口信息

* @param strUrl,接口参数  

* paramStr 参数信息

* @return 服务器返回信息

*/

public static String getContent(String url,String paramStr){

 StringBuffer buf = new StringBuffer();  

 try{

 HttpClient client = new HttpClient();     //创建httpclient对象

       PostMethod method = new PostMethod(url);   //创建post实例

       method.addParameter("name", paramStr);  //设置要传输的数据

       HttpMethodParams param = method.getParams();// 得到参数对象 

       param.setContentCharset("UTF-8");  //设置参数编码格式

      

       client.executeMethod(method);//发送  

       //打印服务器返回的状态  

       System.out.println(method.getStatusLine());  

       //打印返回的信息  

   InputStream stream = method.getResponseBodyAsStream();  

   BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));  

   String line;  

   while (null != (line = br.readLine())) {  

     buf.append(line).append("\n");  

   }  

   //释放连接  

   method.releaseConnection();

 }catch(Exception e){

   System.out.println("发送信息失败!");

   e.printStackTrace();

 }

 return buf.toString();

}

}

 

 

这是web项目的程序:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

System.out.println(req.getParameter("data"));

 

String name=req.getParameter("name");//参数直接用getParameter方法接收就可以了,和普通的url传参一样的

System.out.println(name);

resp.setContentType("text/plain; charset=utf-8");

PrintWriter out=resp.getWriter ();

out.print("欢迎:"+name);

 

}

 

Java中的HttpClient是一个常用的HTTP请求库,有两种常见的实现方式。第一种是使用第三方开源框架HTTPClient来实现。这个框架对HTTP的封装性很好,可以满足大部分需求。最新的HttpClient4.5是org.apache.http.impl.client包下的工具包,而HttpClient3.1是org.apache.commons.httpclient包下的工具包,虽然不再更新,但仍然有人在使用。第二种实现方式是使用Java标准类HttpURLConnection,这是Java中比较原生的实现方式。然而,由于已经有现成的工具,我们一般不再使用HttpURLConnection。 在使用HttpClient之前,我们需要先引入Maven依赖,可以在pom.xml文件中添加以下代码: ``` <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> </dependency> ``` 使用HttpClient可以方便地封装HTTP请求的常用方法,比如: - doGet(String url, Map<String, String> param):发送GET请求,并带有参数。 - doPost(String url, Map<String, String> param):发送POST请求,并带有参数。 - doPostJson(String url, String json):发送POST请求,并带有JSON格式的参数。 通过引入HttpClient的依赖和使用HttpClient提供的封装工具,我们可以方便地在Java中实现HTTP请求并处理响应。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JAVA实现HTTP请求 之 HTTPClient](https://blog.youkuaiyun.com/WYP123456L/article/details/121989884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [JAVA httpclient jar下载](https://download.youkuaiyun.com/download/BvY70455179/86403518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值