客户端请求和接收(使用了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);
}
}
protected void sendResponse(String contextString, Channel channel){

        HttpResponse response = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.OK);
ChannelBuffer channelBuffer = ChannelBuffers.dynamicBuffer();
channelBuffer.writeInt(1);
channelBuffer.writeInt(2);
response.setContent(channelBuffer);
response.setHeader(CONTENT_TYPE, "text/plain; charset=UTF-8"); //application/octet-stream 也可以
channel.write(response).addListener(ChannelFutureListener.CLOSE);
}

Http Post 二进制通信的更多相关文章

  1. 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

    在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...

  2. C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)

    前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...

  3. ES6 二进制数组

    二进制数组(ArrayBuffer对象.TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口.这些对象早就存在,属于独立的规格(2011年2月发布),ES6将 ...

  4. web客户端与服务器端二进制传输

    demo:https://pan.baidu.com/s/1gfEiJ1D 前端采用js,后端采用.net 主要实现js和服务器端之间用二进制通信

  5. es6二进制数组--基础

    一.概念二进制数组由 ArrayBuffer对象 TypeArray 视图和DataView视图 三部分组成是javascript操作二进制数据的一个接口. 早在2011年2月就已经发布,但是由于ES ...

  6. REST 架构风格

    目前基于网络应用的架构风格主要有三种: RPC架构风格   将服务器看作是由一些过程组成,客户端调用这些过程来执行特定的任务.SOAP就是RPC风格的一种架构.过程是动词性的(做某件事),因此RPC建 ...

  7. 实现快速迭代的引擎设计 - Capcom RE Engine的架构与实现

    [译]实现快速迭代的引擎设计 - Capcom RE Engine的架构与实现 ken hu· 6 天前 原文(日文):ラピッドイテレーションを実現するゲームエンジンの設計 CEDEC2016上的一个 ...

  8. WebService的原理和过程

    转自:http://blog.csdn.net/xiaoqiang081387/article/details/5694304 (一).XML WebService作用  XML WebService ...

  9. REST总结(转)

    REST总结           REST(Representational State Transfer)是代表状态传输的缩写,它代表了分布式超媒体系统的体系结构风格,它是一种针对网络应用的设计和开 ...

随机推荐

  1. 理解linux cpu load - 什么时候应该担心了

    译文原文: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 你可能已经很熟悉linux的平均load. ...

  2. wordpress 开源博客系统部署

     1.开发工具 server apache    下载地址:http://www.apache.org   http://httpd.apache.org/download.cgi 数据库 mys ...

  3. 使用jquery的ajax提交文件上传

    以前的项目大多的使用jquery的插件来进行文件上传,对于就只引用jquery而不使用插件来上传文件之前未有写过,最近项目里有写到和用到,就记录一下,以后方便查找. 提示:存在浏览器皆容问题,谨慎使用 ...

  4. Vivaldi浏览器媲美Chrome

    Vivaldi跨平台的浏览器,很好的兼容性...基本上跟Chrome一个层次的... 好的东西,用一次就明白!好酒,酒香巷子深... Download: https://vivaldi.com/dow ...

  5. Ubuntu18.04, WPS表格生成中文大写数字的script

    =IF(ROUND(J9,2)<0,"无效数值",IF(ROUND(J9,2)=0,"零",IF(ROUND(J9,2)<1,"" ...

  6. Ubuntu x86-64汇编(1)

    x86-64 Assembly Language Programming with Ubuntu 的读书记录 x86计算机体系架构 架构总览 CPU, RAM, 存储, 输入输出设备等, 数据的尺寸( ...

  7. hibernate关联映射注解

    转自:hibernate annotation注解方式来处理映射关系 在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说 ...

  8. Nginx 和 PHP 的两种部署方式比较

    2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面多态服务器部署Nginx Web服务和php-fpm提供的fast cgi服务 第二种 前置1台nginx服务器做W ...

  9. magento 得到树形结构的分类列表

    <?php ?> <?php   class Lehui_AllCategoryList_Block_List extends Mage_Core_Block_Template { ...

  10. 《JAVA与模式》之模板模式(转载)

    模板方法在servlet中的应用:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html 原文出处:http://blo ...