0

我正在尝试将 json 数组的信息解析为 android。我使用下面的代码,我从 web 服务获取信息,如果我打开 php 文件一切正常,但在 android 中我无法连接到数据库。我确实设置了访问互联网的权限...

这是我使用的代码:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       StrictMode.enableDefaults(); //STRICT MODE ENABLED
       resultView = (TextView) findViewById(R.id.result);

        getData();
    }

    public void getData(){
        String result = "";
        InputStream isr = null;
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://192.168.10.28/albana/getAllCustomers.php"); //YOUR PHP SCRIPT ADDRESS 
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            isr = entity.getContent();
    }
    catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
            resultView.setText("Couldnt connect to database");
    }
    //convert response to string
    try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
            }
            isr.close();

            result=sb.toString();
    }
    catch(Exception e){
            Log.e("log_tag", "Error  converting result "+e.toString());
    }

    //parse json data
   try {
       String s = "";
       JSONArray jArray = new JSONArray(result);

       for(int i=0; i<jArray.length();i++){
           JSONObject json = jArray.getJSONObject(i);
           s = s + 
                   "Name : "+json.getString("FirstName")+" "+json.getString("LastName")+"\n"+
                   "Age : "+json.getInt("Age")+"\n"+
                   "Mobile Using : "+json.getString("Mobile")+"\n\n";
       }

       resultView.setText(s);

   } catch (Exception e) {
    // TODO: handle exception
       Log.e("log_tag", "Error Parsing Data "+e.toString());
   }

    }

我收到消息“无法连接到数据库”;Log Cat 上没有错误...请有人建议我..

4

3 回答 3

0

在 httpd.conf 文件中进行以下更改

改变:

拒绝所有 允许来自 127.0.0.1 允许来自 ::1 允许来自本地主机

至:

允许所有人

并重新启动所有服务,就像一个魅力。

于 2014-11-13T15:07:13.550 回答
0

我很确定你不想在HttpPost这里使用 a 。尝试一下HttpGet,语法保持不变。还要检查戴夫的答案。

于 2013-05-24T12:55:01.023 回答
0

您正在尝试连接到 192.168.10.28,这是一个私有或不可路由的网络地址。如果您在该网络(或专门连接到它的网络)上,您只能连接到它。您是否通过 wifi 连接到网络?如果是这样,我希望它可以工作,因此请尝试在您的网络浏览器中打开 URL,看看您是否收到 json 响应。如果您通过移动网络连接到它,我不希望它能够工作。

于 2013-05-24T12:52:43.980 回答