HttpClient网络接口交互
来源:互联网 发布:网络映射如何做 编辑:程序博客网 时间:2024/05/01 18:34
在我之前的工作经历中有使用HttpClient直接进行的网络数据的传输,然后在这里我就将这个的过程以及相关的代码记录一下以防之后可能会使用到。
在这里我们简单的记录使用Httpclient进行接口的服务提供以及服务调用的两个方面的过程
服务端
在使用Httpclient进行数据交互的时候服务端的要求比较简单,一个servlet即可,在其中的部分数据的获取可能存在某些特殊的步骤,但是总体来说还是一个简单的servlet.
我们这就直接创建工程以及servlet(详细过程掠过)
具体的服务类的代码如下
package httpTest;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class service extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("xxxxxxxxxxxxxxxxxxxxxxx");try {//准备存放数据的byte数组byte[] bufSource = null;//获取到输入流InputStream ins = request.getInputStream(); //准备缓冲读取流BufferedInputStream inStream = new BufferedInputStream(ins);//准备缓冲输出流ByteArrayOutputStream byteOut = new ByteArrayOutputStream();byte[] b = new byte[1024];int read = 0;//每次读取1024进行转存while ((read = inStream.read(b)) > 0) {byteOut.write(b, 0, read);}//写入到数组中bufSource = byteOut.toByteArray();//关闭流byteOut.close();inStream.close();ins.close();//流转字符串 字符集自选String strRequest = new String(bufSource, "GBK");System.out.println("strRequest = "+strRequest);try {//获取输出流ServletOutputStream out = response.getOutputStream();response.setContentType("text/plain:charset=GBK");response.addHeader("Content-Disposition","inline; filename=\"temp.xml\"");response.reset();out.print(" zhengfang.sun response");out.flush();} catch (Exception ie) {throw ie;} finally {}} catch (Exception e) {}}}
然后我们将我们这个servlet在web.xml里面注册一下
<servlet><servlet-name>test</servlet-name><servlet-class>httpTest.service</servlet-class></servlet><servlet-mapping><servlet-name>test</servlet-name><url-pattern>/test/*</url-pattern></servlet-mapping>
然后我们直接启动Tomcat就直接能够看到我们的结果了
客户端
我们有了服务端关键还是需要能够在其他应用中调用到这个服务才行,在服务端的例子中我们就简单的使用一个java工程来进行网络接口的调用,方便我们能够直观的看到我们的结果
新建一个java工程,然后写一个测试使用的类
package localhost.webserviceTest.test;import java.io.InterruptedIOException;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.params.HttpClientParams;import org.junit.Test;public class Httptest { @Testpublic void communicate() throws Exception {byte[] bufSource = null;String serviceUrl = "";// HTTPConnection connection = null;PostMethod method = null;try {serviceUrl = "http://localhost:8080/HttpServicePro/test/x";String strSend = "zhengfang.sun requesting";//新建连接类HttpClient client = new HttpClient();//新建连接属性类HttpClientParams clientParams = new HttpClientParams();int soTimeout = 1000;// 返回超时时间int connectionManagerTimeout = 1000;// 连接超时时间//设置各个属性clientParams.setSoTimeout(soTimeout);clientParams.setConnectionManagerTimeout(connectionManagerTimeout);clientParams.setContentCharset("GBK");client.setParams(clientParams);client.getHttpConnectionManager().getParams().setConnectionTimeout(connectionManagerTimeout);method = new PostMethod(serviceUrl);//在这里我们将我们的请求信息(一般来说是XML或者是JSON的报文)放入到PostMethod中method.setRequestBody(strSend);//设置调用时候的头信息method.setRequestHeader("Content-type", "text/xml; charset=GBK");//执行调用int status = client.executeMethod(method);} catch (Exception e1) {throw new Exception(" 系统连接失败! ", new InterruptedIOException());}// 取得接受返回消息bufSource = method.getResponseBody();System.out.println("response ===== "+new String(bufSource,"GBK"));method.releaseConnection();}}
然后我们就能通过调用我们之前的那个servlet进行简单的测试了
0 0
- HttpClient网络接口交互
- android 基础 网络交互 HttpClient
- android 基础 网络交互 HttpClient HttpUrlConnection
- Android 的网络编程(4)-HttpClient接口
- 使用HttpClient接口实现网络通信
- Android:使用HttpClient接口实现网络通信
- 使用HttpClient接口实现网络通信
- 使用HttpClient接口实现网络通信
- Android通过HttpURLConnection和HttpClient接口实现网络编程
- android网络编程(httpurlconnect接口,httpclient接口,与socket接口)--转载整理
- android网络编程(httpurlconnect接口,httpclient接口,与socket接口)--转载整理
- HttpClient用于https交互
- Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例
- Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例
- Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例
- HttpClient-----2、使用HTTP的POST方式与网络交互通信
- 服务器接口Android学习笔记47:使用HttpClient接口实现网络通信
- httpclient 4.0 与服务端交互
- hdu 5912 Fraction 模拟题
- 移植unbuntu Qt项目到 windows 下(包含socket)
- 带你走进卡塞尔学院
- CSDN博文精选 微信小程序全方位解析
- 素数筛
- HttpClient网络接口交互
- 插入排序(直接插入排序与希尔排序)
- hdu 5914 Triangle 斐波那契
- 用概率的方法计算Pi值
- service的隐式启动和显示启动
- C语言基础教学——简单练习题(第五课)
- 排序算法
- 听歌向
- [剑指offer学习心得]之:树的子结构