Http Post 二进制通信
2016-06-01 16:50
381 查看
客户端请求和接收(使用了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);
}
}
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);
}
}
相关文章推荐
- 删除网络上下载的PPT模板水印
- tcp 相关的内核变量
- HttpClient的3种超时
- linux 卸载自带apache httpd 安装apache httpd
- HTTP及XMLHTTP状态代码一览
- 《图解TCP/IP》读书笔记(5)
- 通过http流发送post请求
- 网络监控模式简介
- 系统分析员考试复习笔记-4:第四章 数据通讯与计算机网络
- Samba源码编译及安装
- golang http.handler接口详解
- 理解tomcat之搭建简易http服务器
- 获取支持SRIOV的网络接口设备信息
- [转]在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效
- mysql之TIMESTAMP(时间戳)用法详解 [http://www.jb51.net/article/51794.htm]
- mysql编码设置 [http://blog.knowsky.com/254652.htm]
- mysql基本操作 [http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html]
- Linux下TCP/IP网络编程——结课考试知识总结
- log4j配置详解[http://www.iteye.com/topic/378077]
- zeroc-ice网络请求使用介绍