利用resteasy框架构建rest webservice----第五波:java代码调用乱码解决方案

工作原因加家里事情多,很久木有更新了,也木有按照预定计划的那样持续介绍resteasy相关的东西,就介绍下项目出现的问题

今天主要介绍下当URI中出现中文时,服务端获取出得Pathparam为乱码的问题:

  1. StringurlResouce=null;
  2. try{
  3. urlResouce="http://10.28.0.203:8080/cloud-storeage-boss/cai:dafile/"+URLEncoder.encode("中文eclipse.zip","utf-8");
  4. }catch(UnsupportedEncodingExceptione1){
  5. //TODOAuto-generatedcatchblock
  6. e1.printStackTrace();
  7. }//createURL
  8. FilelocalFile=newFile("Z:\\tools\\eclipse-jee-helios-SR2-win32.zip");
  9. try{
  10. HttpURLConnectionurlConnection=
  11. (HttpURLConnection)(newURL(urlResouce)).openConnection();
  12. urlConnection.setRequestProperty("Charset","UTF-8");
  13. urlConnection.setRequestProperty("auth","maomaocaicai");
  14. urlConnection.setDoInput(true);
  15. urlConnection.setDoOutput(true);
  16. urlConnection.setRequestMethod("PUT");
  17. OutputStreamurlOutputStream=urlConnection.getOutputStream();
  18. FileInputStreamfileInputStream=newFileInputStream(localFile);
  19. IOUtils.copy(fileInputStream,urlOutputStream);
  20. fileInputStream.close();
  21. urlOutputStream.close();
  22. System.out.println(urlConnection.getResponseCode());
  23. }
  24. catch(Exceptione)
  25. {
  26. e.printStackTrace();
  27. }

乱码参数的解决方法很简单,就是将相应URI进行UTF-8的编码 这个原理比较简单因为中文时两个字节,而在网络进行传输的时候由于某种原因(具体原因就是编码的问题,请google)会进行单字节的编码,解析出来的中文就变乱码了。----浏览器在传输的时候都会对中文进行编码传输

你可能感兴趣的:(webservice)