Android 没有得到输出
我正试图从我创建了一个php文件的数据库中获取数据。它返回名称作为对呼叫的应答。网站上有吗 程序代码是这样的 php文件如下所示Android 没有得到输出,android,Android,我正试图从我创建了一个php文件的数据库中获取数据。它返回名称作为对呼叫的应答。网站上有吗 程序代码是这样的 php文件如下所示 <?php $connect = mysql_connect("localhost","databasename","password"); mysql_select_db("ews_app"); $query = mysql_query("select name from comment"); if(!empty($query)){ if(mysq
<?php
$connect = mysql_connect("localhost","databasename","password");
mysql_select_db("ews_app");
$query = mysql_query("select name from comment");
if(!empty($query)){
if(mysql_num_rows($query)>0){
WHILE($row=mysql_fetch_array($query)):
$comment = array();
$comment["name"] = $row['name'];
echo "$comment<br>";
echo json_encode($comment);
echo "<br>";
endwhile;
}
}
?>
java代码如下所示:
import java.io.IOException;
import java.io.Reader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
TextView httpStuff;
HttpClient client;
JSONObject json;
final static String URL = "http://www.ensignweb.com/sandbox/app/comment11.php";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
httpStuff = (TextView) findViewById(R.id.data);
client = new DefaultHttpClient();
new Read().execute("name");
}
public JSONObject lastTweet() throws ClientProtocolException,IOException,JSONException{
StringBuilder url = new StringBuilder(URL);
HttpGet get = new HttpGet(url.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();//return 200 if execution is success
if(status==200){
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONArray timeline = new JSONArray(data);
JSONObject last = timeline.getJSONObject(0);
return last;
}else{
Toast.makeText(MainActivity.this, "error", Toast.LENGTH_LONG);
return null;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public class Read extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
try {
json = lastTweet();
return json.toString();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
httpStuff.setText(result);
}
}
}
import java.io.IOException;
导入java.io.Reader;
导入org.apache.http.HttpEntity;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.util.EntityUtils;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.Menu;
导入android.widget.TextView;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
TextView-httpStuff;
HttpClient;
JSONObject json;
最终静态字符串URL=”http://www.ensignweb.com/sandbox/app/comment11.php";
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
httpStuff=(TextView)findViewById(R.id.data);
client=新的DefaultHttpClient();
新建读取()。执行(“名称”);
}
publicJSONObject lastTweet()抛出ClientProtocolException、IOException、JSONException{
StringBuilder url=新的StringBuilder(url);
HttpGet=newhttpget(url.toString());
HttpResponse r=client.execute(get);
int status=r.getStatusLine().getStatusCode();//如果执行成功,则返回200
如果(状态==200){
HttpEntity e=r.getEntity();
字符串数据=EntityUtils.toString(e);
JSONArray时间线=新JSONArray(数据);
JSONObject last=timeline.getJSONObject(0);
最后返回;
}否则{
Toast.makeText(MainActivity.this,“error”,Toast.LENGTH\u LONG);
返回null;
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
公共类读取扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
//TODO自动生成的方法存根
试一试{
json=lastweet();
返回json.toString();
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//TODO自动生成的方法存根
httpStuff.setText(结果);
}
}
}
但它没有显示json回复。这几天来我都被它绊倒了。
请帮我摆脱困境。我真的需要它 你得到了什么回应?(原始数据)网站响应不是有效的json字符串。因为您的Web服务没有以有效的json格式返回响应。。返回字符串应该是这样的{“key”:[{“name”:“bernard”},{“name”:“second”}}返回格式是数组{“name”:“bernard”}数组{“name”:“Vijay”}数组{“name”:“vikas_admin”}数组{“name”:“vikas_admin”}。如何制作。请帮助如何获取有效的json字符串返回