所以我用Google搜索并找到了类似于我需要的示例。我已经调整和调整并解决了我的大部分问题,但是我已经无法通过这个问题而感到困惑。一些Backround:所以我正在构建一个App,通过PHP生成一个JSON对象来查询MySQL数据库。我可以在SDK上的网络浏览器中看到“[{”question“:”为什么天蓝色“}]”所以我知道我可以访问该对象。权限也在我的清单中正确设置。当我尝试将对象解析为字符串时出现问题。我从我的日志cat中获得“转换结果java.lang.NullPointerException的错误”。
现在我已经尝试了
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONTokener tokener = new JSONTokener(json);
JSONArray finalResult = new JSONArray(tokener);
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
我也试过
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
我想我会发布我的http(即使是在自己的线程中最好的做法! - 然后我使用全局变量(facepalm))
new Thread() {
public void run() {
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.55/qgrap.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
}.start();
在第二个代码集的HTTP中,你需要做一些获取内容的东西,或者我想专注于第一个代码集。这里的响应是一个全局变量。当它被传递到BufferReader参数时被操纵。我在String json = reader.readLine();我应该以字符串形式访问数据。无论哪种方式,日志说没有去,我不知道为什么。我也不能只在php端创建一个字符串而不是使用JSON吗?
BOUNTY:一千个互联网
答案 0 :(得分:1)
答案 1 :(得分:0)
好吧所以我这样做是因为我不想使用gson我想让我的代码工作。我有一个我不明白的错误 转换结果java.lang.NullPointerException繁荣时出错了。
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONTokener tokener = new JSONTokener(json);
JSONArray finalResult = new JSONArray(tokener);
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
这段代码中的某个地方就是问题所在。我没有看到它。 无论哪种方式我去html5
答案 2 :(得分:0)
你应该在某种循环中捆绑你的输入,而不是假设它全部在第一行:
BufferedReader userInfoReader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder builder = new StringBuilder();
while ((line = userInfoReader.readLine()) != null) {
builder.append(line).append("\n");
}
JSONTokener tokener = new JSONTokener(builder.toString());
JSONArray finalResult = new JSONArray(tokener);