• 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
     
     
  • 相关阅读:
    mysql免安装使用(win7 64位系统)
    [NOIP2011]瑞士轮
    [NOIP2011]数的划分
    [洛谷2994]超级弹珠
    并查集
    [codevs1073]家族
    快速幂
    [NOI2002]银河英雄传说
    [NOIP2007]矩阵取数游戏
    [洛谷2415]集合求和
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2485043.html
Copyright © 2020-2023  润新知