嗨,我发送一个像这样的服务器的ajax调用
$.ajax({
type: 'POST',
url: "...",
dataType:'json',
data:JSON.stringify(contact),
success:function(){
alert("success")
}
在服务器上我处理这个请求并尝试从这样的请求中读取json对象。
StringBuilder sb = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new
InputStreamReader(request.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
}
但是br.readLine()返回null。知道为什么会这样吗?
答案 0 :(得分:1)
因为你到达了流的末尾。
来自JavaDocs:
返回:包含该行内容的字符串,不包括任何内容 行终止字符,如果流结束,则为null 达到
很可能返回一个空结果,问题出在其他地方。我不知道AJAX请求是作为请求的主体发送还是作为POST参数发送。使用request.getParameter(“json”)可能会有帮助,但首先请检查LiveHttpHeaders,浏览器如何对请求进行编码以及哪个参数名称绑定到数据。在这种情况下,您根本不必使用readline。
答案 1 :(得分:0)
我测试了它,你如何使用HTTP请求InputStream没有问题。 “contact”元素很可能在请求时未定义。因此,它将转换为空JSON字符串。 尝试在“数据”字段中添加一些固定文本,您应该看到它在服务器端工作。