以前都是做客户端开发的, 现在刚开始来接触服务端接口,用的是JSP,先上代码: String input = buffer.toString(); return params; return null; 客户端发来request请求 能够正确返回JSON 但是问题是 服务端会报错HTTP Status 500 – A JSONObject text must begin with “”{“” at 1 [character 2 line 1] |
|
我怎么看这个异常是因为你客户端和服务器端的json库不一致导致格式不一样解析失败?
|
|
解析能成功的哦 客服端不发request 只服务端启动也会报这个错 所以肯定不是你说的这个问题呢 |
|
用Base64解码再使用看看。
|
|
楼上 的 先转 试试。
|
|
对InputStream 还是对input进行Base64解码?我想请教一般是怎么处理接口发来的request请求的 |
|
40分 |
A JSONObject text must begin with ""{"" at 提示很明显了,json格式{"":""} System.out.print一下rquest中获取到的内容 |
40分 |
HTTP Status 500 – A JSONObject text must begin with “”{“” at 1 [character 2 line 1]
你这个错明显是格式不对啊 |
真的很蛋疼 格式似乎又是对的呢 |
|
可是问题是哪里的明显呢 格式如楼上 |
|
而且我将帖子中的
String input = buffer.toString(); JSONObject params = new JSONObject(input); 改为 JSONObject data = new JSONObject(); data.put("username", "123"); data.put("password", "456"); data.put("email", "11111111111@qq.com"); data.put("phone", "11111111111"); System.out.println("data.toString()); JSONObject params = new JSONObject(data.toString()); 打印出来是 |
|
20分 |
跟你说了这是解析的问题,既然不发request服务器启动都会报错,那说明问题根本不出在你贴出来的这块代码里,你找你自己的启动逻辑还有哪里有解析json的部分,仔细检查
|
就是Base64位的转码问题,在通信过程中json数据中的引号,别转移所以发送请求之前要先base64编码,服务端接到后要做相应的base64位解码,之后再解析json
|