php - 将数据从 MySql Server 传输到 Android App

标签 php android mysql database soap

我正在制作一个需要从 MySQL 数据库访问数据(发送和检索)的 Android 应用程序。该数据库由我创建的网站提供。我已经创建了数据库。现在我需要应用程序向它传输数据。谁能帮帮我?

我还附上了下面的代码。我在应用程序中有 3 个 Activity 。我发布了将数据发送到数据库的注册 Activity 的代码。该数据库位于 my3gb.com 网站上,该网站提供 PHPMyAdmin 对其进行更改。

package com.abc;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.NameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONArray;



import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class RegActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.reg);
    EditText e1 = (EditText) findViewById(R.id.editText1);
    EditText e2 = (EditText) findViewById(R.id.editText2);
    EditText e3 = (EditText) findViewById(R.id.editText3);
    EditText e4 = (EditText) findViewById(R.id.editText4);
    EditText e5 = (EditText) findViewById(R.id.editText5);
    EditText e7 = (EditText) findViewById(R.id.editText7);
    Button b1 = (Button) findViewById(R.id.sub);

    final String username = e1.getText().toString();
    final String phone_no = e2.getText().toString();
    final String email = e3.getText().toString();
    final String bld_grp = e4.getText().toString();
    final String city = e5.getText().toString();
    final String password = e7.getText().toString();



    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            InputStream is = null;
            InputStream is1 = null;
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("username",username));
            nameValuePairs.add(new BasicNameValuePair("phone_no",phone_no));
            nameValuePairs.add(new BasicNameValuePair("email",email));
            nameValuePairs.add(new BasicNameValuePair("bld_grp",bld_grp));
            nameValuePairs.add(new BasicNameValuePair("city",city));
            nameValuePairs.add(new BasicNameValuePair("password",password));
            try
            {     
                 HttpClient httpclient = new DefaultHttpClient();
                 HttpPost httppost = new HttpPost("http://www.prozac.my3gb.com/UserPass.php");
                 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                 HttpResponse response = httpclient.execute(httppost);
                 HttpEntity entity = response.getEntity();
                 is = entity.getContent();
                 is1 = is;
             }

            catch(Exception e)
            {
                     Log.e("log_tag", "Error in http connection"+e.toString());
            }
            //convert response to string
            String res = null;
            try
            {

                   BufferedReader reader = new BufferedReader(new InputStreamReader(is1,"iso-8859-1"),8);
                   StringBuilder sb = new StringBuilder();
                   sb.append(reader.readLine() + "\n");
                   String line="0";
                   while ((line = reader.readLine()) != null) 
                   {
                                  sb.append(line + "\n");        
                    }
                    is.close();
                    String result=sb.toString();
                    res=result;
              }
            catch(Exception e)
            {
                          Log.e("log_tag", "Error converting result "+e.toString());
            }
            //parsing data
            try
            {

                  JSONArray jArray = new JSONArray(res);
                  int [] deal_id=new int[jArray.length()+1];
                  JSONObject json_data=null;
                  for(int i=0;i<jArray.length();i++)
                  {
                         json_data = jArray.getJSONObject(i);
                  }
            }      
            catch(JSONException ej)
            {
            }
            catch (ParseException ex) 
            {
                        ex.printStackTrace();   
            }


        }
    });

}

当我点击提交时,应用程序停止响应。

我希望尽早提供帮助。

最佳答案

我建议创建一个连接到您的数据库的简单 REST 网络服务,这样您的应用就可以发出简单的 GET 和 POST 请求。

我过去曾将 Flask 用于简单的 Web 服务,我也强烈推荐它。

关于php - 将数据从 MySql Server 传输到 Android App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807593/

相关文章:

php - 根据 laravel 中的 created_at 字段选择记录

php - 未捕获的 SoapFault 异常 : [WSDL] SOAP-ERROR: Parsing WSDL Couldn't load from 'http://88. XXX.XXX.XXX:8080/

android - Buggy ListView 让我很难过

数据库 |左连接

mysql - WHERE EXISTS mysql查询错误

php - facebook API 有什么好的 totuiral 吗?是否有可能在我的网站上获取用户的好友列表?

android - 静态html文件

android - 我可以在 Android 上拥有没有布局的应用程序页面吗?

mysql - GROUP BY 列名称与按列别名

javascript - 中止之前的ajax请求但有延迟吗?