zoukankan      html  css  js  c++  java
  • 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
     
     
  • 相关阅读:
    判断DataSet为空
    msxml3.dll 错误 '800c0008'
    google Map api地理位置坐标转换
    C# .net中cookie值为中文时的乱码解决方法
    windows pear 安装
    smarty2 设置、变量、函数
    简单模板类
    mysql 1366 插入错误
    Oracle修改账户口令
    C# Winform验证码
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2485043.html
Copyright © 2011-2022 走看看