无法使用Android连接到数据库

伊佐32

我正在尝试执行以下代码,以使用Web服务从数据库中检索数据:

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getData();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


public void getData(){
    TextView resultView = (TextView) findViewById(R.id.textView1);
    String result = "";
    InputStream isr = null;
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://HOSTNAME/FILENAME.php");
        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");
    }
    //converting 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 data
    try{
        String s = "";
        JSONArray jArray = new JSONArray(result);
        for(int i = 0;i<jArray.length();i++){
            JSONObject json = jArray.getJSONObject(i);
            s = s + "St.ID" + json.getString("StId") + "\n " +json.getString("StName") + "\n" + json.getString("StMail");

        }
        resultView.setText(s);
    }
    catch(Exception e){
        Log.e("Log_tage", "Error Parsing Data"+e.toString());
    }
}

但是返回错误:无法连接到数据库。

这是输出LogCat:

11-14 20:10:3​​5.057:E / log_tag(5323):http连接错误android.os.NetworkOnMainThreadException

11-14 20:10:3​​5.057:E / log_tag(5323):转换结果时出错java.lang.NullPointerException:lock == null

11-14 20:10:3​​5.057:E / Log_tage(5323):解析Dataorg.json.JSONException错误:字符0的输入结束

我已经在某些Web服务上添加了一个php文件,并且运行良好,但是我认为这与HttpPost URL有关,HttpPost URL是否有特定格式,还是与Web服务中提供的URL相同?

PHP文件:

   <?php 
$con = mysql_connect("HOST","USERNAME","PASSWORD");
if (!$con)
    {
    die('Could not Connect:'. mysql_error());
    }
mysql_select_db("database_name",$con);

$result = mysql_query("SELECT * FROM table_name");

while($row = mysql_fetch_assoc($result))
    {
       $output[]=$row;
    }

print(json_encode($output));
mysql_close($con);
?>

请帮忙。

伊佐32

通过使用@Carlo的代码并编辑以下代码行,可以解决问题并检索数据:

HttpPost httppost = new HttpPost("http://HOSTNAME/FILENAME.php");

至:

HttpGet httppost = new HttpGet("http://HOSTNAME/FILENAME.php");

如我的代码中所述,我想从URL中检索数据而不发布数据。

HttpPost>用于将数据提交到指定资源。HttpGet>用于从指定资源检索数据。

感谢你的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法连接到Android KivyMD上的mysql数据库

来自分类Dev

无法使用MySQLConnection连接到MySQL数据库

来自分类Dev

无法使用PHP连接到数据库

来自分类Dev

无法使用SQuirrelSQL连接到SQL数据库

来自分类Dev

无法使用JDBC连接到Sql Server数据库

来自分类Dev

使用MySQLWorkbench无法连接到(远程)MySQL数据库

来自分类Dev

无法使用Django连接到Firebird数据库

来自分类Dev

无法使用PHP连接到数据库

来自分类Dev

无法使用PDO连接到数据库

来自分类Dev

DVWA无法使用MAMP连接到数据库

来自分类Dev

无法使用Java从VM连接到mysql数据库

来自分类Dev

无法在ubuntu中使用jsp连接到数据库

来自分类Dev

无法使用mysqli连接到phpMyAdmin数据库

来自分类Dev

无法使用Cron作业连接到MySQL数据库

来自分类Dev

无法使用Power Query连接到Oracle数据库

来自分类Dev

使用MySQLWorkbench无法连接到(远程)MySQL数据库

来自分类Dev

无法使用JDBC连接到远程Oracle数据库

来自分类Dev

无法使用pdo连接到php数据库

来自分类Dev

无法使用 sqlsrv_connect() 连接到数据库

来自分类Dev

pyodbc无法连接到数据库

来自分类Dev

无法连接到redshift数据库

来自分类Dev

无法连接到数据库[默认]

来自分类Dev

无法连接到数据库

来自分类Dev

无法连接到数据库-MySQL

来自分类Dev

Telosys无法连接到数据库

来自分类Dev

无法连接到本地数据库

来自分类Dev

无法远程连接到数据库

来自分类Dev

我无法连接到数据库

来自分类Dev

无法连接到数据库?