java restful中文乱码_restful服务接口访问乱码 和 505错误
标签:
用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错误相关推荐
- Java互联网架构-如何设计服务接口API限流功能
API 概念的出现,远远早于个人计算机的诞生,更不用说网络的诞生了.在公用数据处理的早期,为了一个应用能够与其它系统交互,开发者便已开始设计可公开访问并描述清晰的"接入点".早在那 ...
- java restful开发规范_restful规范
咱们先来谈谈什么是接口? 我们常说的一个接口其实就是一个URL. 在java和c#中,接口也是一种约束. # 约束继承(实现)了他的类中必须含有IFoo中的方法 interface IFoo: def ...
- java restful中文乱码_使用RestTemplate访问RESTful服务乱码处理
在接口服务开发中,我们经常用到Spring模板类RestTemplate访问restful服务.但RestTemplate处理中文乱码问题比较麻烦.以我们项目Spring版本4.1.3.RELEASE ...
- 基于java Restful API 的Sdnote服务端开发笔记
前奏 欢迎访问我的博客:Lunatic 似乎有大半个月没有啥动静,这段时间一直忙大学生计算机设计大赛,被老师说动参加这项比赛.动心一方面是因为可以有动手的机会,另一方面是对未来阶段有些许帮助. 回来后 ...
- restful url 设计规范_RESTful API接口设计规范
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备-).因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致API构架的流行 ...
- java restful开发规范_restful api 开发规范
1.协议 http && https 2.域名 https://api.example.com && https://example.org/api/ 3.版本 ht ...
- 小程序服务器端端接口,微信小程序:后端服务接口(WordPress)
微信的小程序相当于是一套前端(Frontend)应用的框架,让它变成一个真正能用的 App,我们还得给它提供一个后端服务,或者叫应用后台(Backend).几乎所有的后端应用框架都支持为小程序提供后端 ...
- 使用CXF实现Webservice的服务接口提供以及相关的客户端实现
至apache官网下载相关的jar包. 一. 编写提供服务的接口以及相关实现类 package com.demo;import java.util.List;import javax.jws.WebP ...
- java printstream 中文乱码_JAVA的中文字符乱码问题
JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...
最新文章
- gitlab安装各种坑
- 被政治割裂的开源:伊朗开源拒绝来自以色列的PR
- 膨胀的计算机仿真,制冷空调中的计算机仿真与控制
- 104. Leetcode 337. 打家劫舍 III (动态规划-打家劫舍)
- Android--视频播放器
- Java面试题,java工程师求职简历
- POJ 3461Oulipo KMP模板
- 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
- windows 下 latex graphviz 字体设置
- gsoap 实现 C/C++ 调用web service
- 锁屏界面_强迫症必爱!iPhone怎样隐藏锁屏界面的手电筒、相机图标?
- 【PHP基础】文件操作
- python +appium实现原理_Appium工作原理
- 使用APICloud AVM多端框架开发课程表功能
- gradle Could not resolve 依赖包
- uclinux 与 linux的区别
- 转简单之美——系统设计黄金法则
- java没有舞台_不会偷懒的程序员不是好程序员!
- Android植物大战僵尸附源码
- 2010年最有价值做的16个广告联盟