关于java使用socket传输的问题

穿上裤头写代码 2017-12-07 11:40:50
最近在与某银行合作,要求我方定时发送对账文件给银行,方式为socket。流程为:我方发送请求报文(xml),银行接收后应答“0000”,表示接收文件确认,我方开始发送文件,格式为
****|****|****
****|****|****|****|****|****
接口传输,最终会转化为字符串或者byte数组。另外,规定单次发送的文件长度不得超过4096字节,所以分批次发送。附上时序图
银行要求我方发送的请求报文为utf-8编码,文件为gbk,所以需要转码。目前我方服务搭建在Linux上,默认编码格式为utf-8。
问题:银行反馈我方发送的文件为utf-8,我看代码中已经是做了转码的,难道是有什么地方疏忽了么?还请大神帮忙答疑
附上部分代码:
// 组装发送银行的请求信息
buildMessage = CenterControll.getImplementOfRequest(requestType);
message = buildMessage.build(replyMessage, fileName, fileType, begainIndex, fileLen, endIndex, dataPackage, path,privateKey);
settleLogger.settlePrintData("发送的报文"+message);
System.out.println("请求:"+message);
if (message.equals("stop")){
continueCommunicate = false;
break;
}
if(message.indexOf("X1.0")==0){//请求报文与应答报文以X1.0开头
writer = new OutputStreamWriter(socket.getOutputStream(),"UTF-8");
writer.write(message);
if(0 != requestType.indexOf("send")){
writer.write("0000");
}
}else{
writer = new OutputStreamWriter(socket.getOutputStream(),"GBK");
writer.write(message);
}
writer.flush();
...全文
184 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
有没有人帮忙解答下

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧