标签:

用cxf 发部个rest服务,用浏览器访问和 HttpURLConnection 访问。

1. URL中有中文,浏览器访问正常,HttpURLConnection 失败。

解决: HttpURLConnection 方式需要做兼容处理。

queryParam 传入参数,服务实现方法中要处理,如果是乱码要转换,如果中文直接查询

if (!isChineseChar(queryParam))

{

queryParam = new String(queryParam.getBytes("iso8859-1"), "utf-8");

}

// 判断中文

public static boolean isChineseChar(String str)

{

boolean temp = false;

Pattern p=Pattern.compile("[\u4e00-\u9fa5]");

Matcher m=p.matcher(str);

if(m.find()){

temp =  true;

}

return temp;

}

2. HttpURLConnection 请求中 参数中如果有  空格,请求则会 505错误

解决: 需要对有空格的参数 做URL编码处理。import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLEncoder;

import sun.net.www.protocol.http.HttpURLConnection;

import com.alibaba.fastjson.JSONObject;

public class SingleTableRestClient

{

private static final String targetURL = "http://localhost:8080/agd-restful/services/restful/QueryService/queryData/*?queryParam=";

public static void main(String[] args)

{

JSONObject obj = new JSONObject();

obj.put("XM", "匡匡");

obj.put("BIRTHDAY", getURLEncoder("1988-01-01 00:00:00,1988-12-30 00:00:00"));

String urls = targetURL + obj.toString();

requestRestServer(urls);

}

public static JSONObject requestRestServer(String url)

{

JSONObject obj = new JSONObject();

try

{

URL restServiceURL = new URL(url);

HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();

httpConnection.setRequestMethod("GET");

httpConnection.setRequestProperty("Accept", "application/json");

httpConnection.setRequestProperty("Accept-Charset", "UTF-8");

httpConnection.setRequestProperty("contentType", "UTF-8");

if (httpConnection.getResponseCode() != 200) {

throw new RuntimeException("HTTP GET Request Failed with Error code : "

+ httpConnection.getResponseCode());

}

BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(

(httpConnection.getInputStream()),"utf-8"));

String output = "";

String result = "";

System.out.println("Output from Server:  \n");

while ((output = responseBuffer.readLine()) != null) {

//System.out.println(output);

result = output;

}

obj = JSONObject.parseObject(result);

System.out.println(obj.toString());

httpConnection.disconnect();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return obj;

}

@SuppressWarnings("deprecation")

private static String getURLEncoder(String dest)

{

return URLEncoder.encode(dest);

}

}修改后  正常ok

标签:

java restful中文乱码_restful服务接口访问乱码 和 505错误相关推荐

  1. Java互联网架构-如何设计服务接口API限流功能

    API 概念的出现,远远早于个人计算机的诞生,更不用说网络的诞生了.在公用数据处理的早期,为了一个应用能够与其它系统交互,开发者便已开始设计可公开访问并描述清晰的"接入点".早在那 ...

  2. java restful开发规范_restful规范

    咱们先来谈谈什么是接口? 我们常说的一个接口其实就是一个URL. 在java和c#中,接口也是一种约束. # 约束继承(实现)了他的类中必须含有IFoo中的方法 interface IFoo: def ...

  3. java restful中文乱码_使用RestTemplate访问RESTful服务乱码处理

    在接口服务开发中,我们经常用到Spring模板类RestTemplate访问restful服务.但RestTemplate处理中文乱码问题比较麻烦.以我们项目Spring版本4.1.3.RELEASE ...

  4. 基于java Restful API 的Sdnote服务端开发笔记

    前奏 欢迎访问我的博客:Lunatic 似乎有大半个月没有啥动静,这段时间一直忙大学生计算机设计大赛,被老师说动参加这项比赛.动心一方面是因为可以有动手的机会,另一方面是对未来阶段有些许帮助. 回来后 ...

  5. restful url 设计规范_RESTful API接口设计规范

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备-).因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致API构架的流行 ...

  6. java restful开发规范_restful api 开发规范

    1.协议 http && https 2.域名 https://api.example.com && https://example.org/api/ 3.版本  ht ...

  7. 小程序服务器端端接口,微信小程序:后端服务接口(WordPress)

    微信的小程序相当于是一套前端(Frontend)应用的框架,让它变成一个真正能用的 App,我们还得给它提供一个后端服务,或者叫应用后台(Backend).几乎所有的后端应用框架都支持为小程序提供后端 ...

  8. 使用CXF实现Webservice的服务接口提供以及相关的客户端实现

    至apache官网下载相关的jar包. 一. 编写提供服务的接口以及相关实现类 package com.demo;import java.util.List;import javax.jws.WebP ...

  9. java printstream 中文乱码_JAVA的中文字符乱码问题

    JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...

最新文章

  1. gitlab安装各种坑
  2. 被政治割裂的开源:伊朗开源拒绝来自以色列的PR
  3. 膨胀的计算机仿真,制冷空调中的计算机仿真与控制
  4. 104. Leetcode 337. 打家劫舍 III (动态规划-打家劫舍)
  5. Android--视频播放器
  6. Java面试题,java工程师求职简历
  7. POJ 3461Oulipo KMP模板
  8. 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
  9. windows 下 latex graphviz 字体设置
  10. gsoap 实现 C/C++ 调用web service
  11. 锁屏界面_强迫症必爱!iPhone怎样隐藏锁屏界面的手电筒、相机图标?
  12. 【PHP基础】文件操作
  13. python +appium实现原理_Appium工作原理
  14. 使用APICloud AVM多端框架开发课程表功能
  15. gradle Could not resolve 依赖包
  16. uclinux 与 linux的区别
  17. 转简单之美——系统设计黄金法则
  18. java没有舞台_不会偷懒的程序员不是好程序员!
  19. Android植物大战僵尸附源码
  20. 2010年最有价值做的16个广告联盟

热门文章

  1. shell su 密码_[SU模型] 59个公共卫生间
  2. #詹青云 为什么我要在最好的年纪离开你
  3. 哈尔滨工程大学迎来80后副校长
  4. NeurIPS 2018 中的贝叶斯研究
  5. 纯粹数学:哈代的世外桃源
  6. 23种设计模式之桥梁模式
  7. html之关于空白和空白字符
  8. Unity3d--跨平台(一)
  9. Flink keyby 数据倾斜问题处理
  10. windows 安装 zabbix agent 客户端