WebService调用socket返回乱码,写死参数就不会

轻吻荔枝香 2016-12-06 04:14:22
在webservice中写死xml的值,那么就一切正常,如果通过调用webservice的时候写入值,断点跟踪的时候xml的值也是正常的,但是socket返回的信息就是乱码的,求助啊!

@Override
public String sendZhuanjie(String xml) {
ScoketClient sc = new ScoketClient();
//xml如果写死就不会有问题,如果换成传输过来的也显示正常但是 result就为乱码
String result = sc.openSocketClient("127.0.0.1",11777,xml);
System.out.println("返回信息" + result);//result
String resultXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><result>[result]</result>";
resultXML = resultXML.replace("[result]", result);
}

//前端调用webservice
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/WEB/webservice/childWebService?wsdl");
Object[] objects=null;
try {
String xml = “”
objects = client.invoke("sendZhuanjie", xml);
System.out.println(objects[0].toString());
} catch (Exception e) {
e.printStackTrace();
}



...全文
214 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyer_ly 2016-12-14
  • 打赏
  • 举报
回复
制定传输编码格式就能解决,baidu下
轻吻荔枝香 2016-12-06
  • 打赏
  • 举报
回复
socketClient public synchronized String openSocketClient(String ipAddress, int port, String xmlString){ System.out.println("发送信息:\n" + xmlString); Socket socket = null; try { socket = new Socket(ipAddress,port); //获取输出流,用于客户端向服务器端发送数据 DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); InputStreamReader inSR = new InputStreamReader(socket.getInputStream(), "GBK"); //获取输入流,用于接收服务器端发送来的数据 /*这个传输方式限制信息长度64k,不符合实际要求*/ // DataInputStream dis = new DataInputStream(socket.getInputStream()); //客户端向服务器端发送数据 dos.writeUTF(xmlString); //打印出从服务器端接收到的数据 // BufferedReader br = new BufferedReader(inSR); // String str = ""; // StringBuffer returnStr = new StringBuffer(); // while((str = br.readLine()) != null) { // returnStr.append(str.trim()); // } BufferedReader br = new BufferedReader(new UnicodeReader(socket.getInputStream(), "GBK")); // BufferedReader br = new BufferedReader(inSR); StringBuffer returnStr = new StringBuffer(); String line = br.readLine(); while(line!=null){ returnStr.append(line); line = br.readLine(); } System.out.println("前置机返回信息:\n" + returnStr.toString()); //不需要继续使用此连接时,记得关闭 socket.close(); return returnStr.toString(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } return ""; }

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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