Http Post 二进制通信

转载 2016年06月01日 16:50:26

客户端请求和接收(使用了httpclient4.3 和netty3.5)

public static void httpPost11() {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost(
            "http://192.168.1.74:4321/v1/user/get_notice");
    MultipartEntityBuilder d=MultipartEntityBuilder.create();
    int a=10,b=11;
    d.addBinaryBody("id", HighLowByteConvert.toHH(a));
    d.addBinaryBody("ids", HighLowByteConvert.toHH(b));
    try {
        httpPost.setEntity(d.build());
        CloseableHttpResponse httppHttpResponse2 = httpClient
                .execute(httpPost);
        if (httppHttpResponse2.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            byte []c=EntityUtils.toByteArray(httppHttpResponse2.getEntity());
            ChannelBuffer channelBuffer = ChannelBuffers.copiedBuffer(c);
            System.out.println(channelBuffer.readInt());
            System.out.println(channelBuffer.readInt());
        }
        else
        {
        }
        httppHttpResponse2.close();
        httpClient.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

服务端接收和发送

public void handle(HttpRequest request, Channel channel) throws Exception {
        
        HttpMethod method = request.getMethod();
        if(method.equals(HttpMethod.GET)){
            handle(request.getUri(), channel);
        }else if(method.equals(HttpMethod.POST)){
             HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request);
             List< InterfaceHttpData> datas = decoder.getBodyHttpDatas();
             for (InterfaceHttpData interfaceHttpData : datas) {
                 if(interfaceHttpData.getHttpDataType() == HttpDataType.Attribute)
                 {
                     Attribute attribute = (Attribute) interfaceHttpData;
                     System.out.println("id :" +   attribute.getChannelBuffer().readInt());
                 }
            }
             sendResponse("", channel);
        }
    }



相关文章推荐

java HTTP get post请求,获取二进制文件实现

public class HttpPlugin{ private static Log log = LogFactory.getLog(HttpPlugin.class); @Override pub...

iphone网络编程 http请求 get / post(发送二进制文件) 总结

首先说说一下http请求 http请求最长用的方法是 get 和 post 方法 get方法和post方法相比理解起来比较简单,get方法可以直接请求一个url,也可以url后面拼接上参数...

http通信里get和post的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP...

post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?

好吧, 除了哲学方式的回答以外,下面是一个浏览器从业人员的看法 事实上GET 和 POST 在实践上面有非常大的区别,这两种方法在语义上面并非能互相取代。 POST 是否比 GET 安全 是的,...

android与jsp http post方式通信

android端 public void ppost() { String uriAPI = "http://xx.xxxx.xx:17777/Nafio/Emulator/test/t...
  • OnafioO
  • OnafioO
  • 2012年08月06日 14:55
  • 6603

post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?

好吧, 除了哲学方式的回答以外,下面是一个浏览器从业人员的看法 事实上GET 和 POST 在实践上面有非常大的区别,这两种方法在语义上面并非能互相取代。 POST 是否比 GET 安全 ...

post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?

事实上GET 和 POST 在实践上面有非常大的区别,这两种方法在语义上面并非能互相取代。 POST 是否比 GET 安全 是的, POST要比GET安全一点点,注意,是一点点。。。 ...

Http通信访问网络资源(Get与Post请求)

Http通信访问网络资源(Get与Post请求)

Android中基于Http协议的网络通信的两种方法Get和Post

废话就不多说了直接上代码,很多的解释就直接写在代码中了! 第一种方法:Get方法: public class Get { private HttpResponse httpResponse =...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Http Post 二进制通信
举报原因:
原因补充:

(最多只允许输入30个字)