请教大神一个Java写服务端后台接口的问题
本帖最后由 I_am_not_loser 于 2014-03-19 18:29:21 编辑
              
            以前都是做客户端开发的, 现在刚开始来接触服务端接口,用的是JSP,先上代码:
public static JSONObject receiveRequet(HttpServletRequest request, String method)
	{
		try
		{
			BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream()));
			String str = null;
			StringBuffer buffer = new StringBuffer();
			while ((str = bufferedReader.readLine()) != null)
			{
				buffer.append(str);
			}
			
			String input = buffer.toString();
			JSONObject params = new JSONObject(input);
			
			return params;
		}
		catch (MalformedURLException e)
		{
			e.printStackTrace();
		}
		catch (
IOException e)
		{
			e.printStackTrace();
		}
		
		return null;
	}
客户端发来request请求 能够正确返回JSON 但是问题是 服务端会报错HTTP Status 500 - A JSONObject text must begin with '{' at 1 [character 2 line 1]
网上搜索了下 大概意思是UTF-8编码的bom头的问题 解决办法基本上都是txt文件去掉bom头
难道是要将InputStream先写入文件再去bom头后读取出来吗?可是这样的话效率会是个很大的问题吧
我想请教这个问题该如何处理 大家接收客户端request都是怎么处理的呢?先谢过了
------解决方案--------------------
 A JSONObject text must begin with '{' at 
提示很明显了,json格式{"":""}
System.out.print一下rquest中获取到的内容
------解决方案--------------------HTTP Status 500 - A JSONObject text must begin with '{' at 1 [character 2 line 1]
你这个错明显是格式不对啊
------解决方案--------------------跟你说了这是解析的问题,既然不发request服务器启动都会报错,那说明问题根本不出在你贴出来的这块代码里,你找你自己的启动逻辑还有哪里有解析json的部分,仔细检查