我获取响应报文的方式很常规,从输入流中获取,写入字符串。
这是我获取的响应报文
不知道为什么我想要的响应体前面会出现这样一段php代码
难道 这个就是 bom头没去?可是我在dw里面把这个去掉了。
现在还有点异常的地方:之前我用花生壳内网穿透,用外网访问我写的服务器文件,是可以的,但是现在我用手机自带的浏览器打开不了了(在手机qq里面的浏览器可以打开),如果手机连接局域网(内网,通过ip地址访问)下,还是可以正常访问的。
if (httpResponse.getStatusLine().getStatusCode() == 200) {
//获取返回字符串
StringBuilder builder=new StringBuilder();
BufferedReader buffer =new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
for(String s=buffer.readLine();s!=null;s=buffer.readLine())
{
builder.append(s);
}
strResult=builder.toString().replaceAll("<!doctype html><html><head><meta charset=\"utf-8\"><title>无标题文档</title></head><body></body></html>",""); //将这个去掉 获得的字符串是符合json结构的
System.out.println(strResult);
JSONObject jsonObject=new JSONObject(strResult);
warn=jsonObject.getString("warn");
}
} catch (Exception e) {
e.printStackTrace();
}
这个是可以正常获取json数据的 代码 我就是想知道 在我json数据前面的那一段是什么东西?难道属于 我的响应体的一部分?
这是我获取的响应报文
不知道为什么我想要的响应体前面会出现这样一段php代码
难道 这个就是 bom头没去?可是我在dw里面把这个去掉了。
现在还有点异常的地方:之前我用花生壳内网穿透,用外网访问我写的服务器文件,是可以的,但是现在我用手机自带的浏览器打开不了了(在手机qq里面的浏览器可以打开),如果手机连接局域网(内网,通过ip地址访问)下,还是可以正常访问的。
if (httpResponse.getStatusLine().getStatusCode() == 200) {
//获取返回字符串
StringBuilder builder=new StringBuilder();
BufferedReader buffer =new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
for(String s=buffer.readLine();s!=null;s=buffer.readLine())
{
builder.append(s);
}
strResult=builder.toString().replaceAll("<!doctype html><html><head><meta charset=\"utf-8\"><title>无标题文档</title></head><body></body></html>",""); //将这个去掉 获得的字符串是符合json结构的
System.out.println(strResult);
JSONObject jsonObject=new JSONObject(strResult);
warn=jsonObject.getString("warn");
}
} catch (Exception e) {
e.printStackTrace();
}
这个是可以正常获取json数据的 代码 我就是想知道 在我json数据前面的那一段是什么东西?难道属于 我的响应体的一部分?
如果你说某些环境下可以, 那么就是兼容性做得不好.
但肯定是服务器返回的问题.
多抓包看.
觉得应该是接口返回数据格式拼错了,让写接口的自己查一下,再处理。