get/post发送HTTP请求

本节摘要:采用httpclient插件的post方式发送二进制数据流到http服务端

说明,本节在我之前的一篇博客get/post方式调用http接口的基础上来介绍,本节的代码和之前的这篇博客放在同一个工程目录的同一个包下。

1.背景介绍

最近项目中发布了一个HTTP服务,HTTP服务端采用二进制流来接收数据,

与其他系统的同事联调的时候,总是出现一些问题,现把这些问题列出来,并在代码中得到了解决。

(1)请求的中文,服务器端接收到后为乱码

(2)客户端接收到服务器端的响应报文后,中文为乱码

(3)请求的报文中没有设置字符集,服务器报空指针异常

(4)客户端发送请求后,服务器端接收到的二进制数据的长度为0,报NegativeArraySizeExceptio异常

(5)服务端接收到客户端的报文后里面全是百分号以及英文字母(不用说,你懂的。)

之前介绍过采用JDK自带的java.net.HttpURLConnection(见博客get/post发送HTTP请求2)可以解决这个问题,但是项目中发现客户端很多同事都是采用的httpclient插件,那咱这次就用httpclient插件来发送post请求,并解决以上问题。服务端接收代码以及输出代码不能改,那么我们只能想千方设百计的去修改完善我们客户端的代码。

2.代码如下:

之前的博客get/post方式调用http接口,这个直接采用发送字符串的形式,也没有解决中文问题,

废话咱就不多说了,直接上代码

(1)修改web.xml配置文件,增加以下几行

web.xml

servlet的配置,很easy

(2)HTTP服务器端的代码

PostHttpServer.java

(3)HTTP客户端的代码

PostHttpClient.java


3.测试结果

部署项目,启动tomc,运行客户端代码中的main方式

客户端的测试结果如下

服务端的测试结果如下:

 
标签: HTTP

当前标签: HTTP

 
月月鸟0820 2012-05-05 12:01 阅读:492 评论:0
 
月月鸟0820 2012-04-27 12:07 阅读:1627 评论:0
 
月月鸟0820 2012-02-26 21:29 阅读:1452 评论:3
 
 
原文地址:https://www.cnblogs.com/Leo_wl/p/2485043.html