Android JSON PHP MySQL远程连接问题

Android JSON PHP MySQL远程连接问题,php,android,mysql,json,Php,Android,Mysql,Json,我正在从事一个android项目,该项目必须处理MYSQL数据库,应用程序在localhost上运行良好,但当我将php文件和数据库放在服务器上并尝试通过device app close意外地执行程序时,尽管我在java文件中将地址从localhost更改为服务器地址。以下是我的代码: 公共类用户函数{ private JSONParser jsonParser; private static String registerURL = "http://192.168.1.74/android

我正在从事一个android项目,该项目必须处理MYSQL数据库,应用程序在localhost上运行良好,但当我将php文件和数据库放在服务器上并尝试通过device app close意外地执行程序时,尽管我在java文件中将地址从localhost更改为服务器地址。

以下是我的代码:

公共类用户函数{

private JSONParser jsonParser;


private static String registerURL = "http://192.168.1.74/android_login_api/";
private static String register_tag = "register";


// constructor
public UserFunctions(){
    jsonParser = new JSONParser();
}

public JSONObject registerUser(String name){
    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", register_tag));
    params.add(new BasicNameValuePair("name", name));

    // getting JSON Object
    JSONObject json = jsonParser.getJSONFromUrl(registerURL, params);
    // return json
    return json;
}
private-JSONParser-JSONParser;
专用静态字符串注册表URL=”http://192.168.1.74/android_login_api/";
专用静态字符串寄存器\u tag=“寄存器”;
//建造师
公共用户函数(){
jsonParser=新的jsonParser();
}
公共JSONObject注册器(字符串名称){
//建筑参数
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“标记”,寄存器_标记));
参数添加(新的BasicNameValuePair(“名称”),名称);
//获取JSON对象
JSONObject json=jsonParser.getJSONFromUrl(registerURL,params);
//返回json
返回json;
}
}

JSON类:

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

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

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);            
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}
公共类JSONParser{
静态InputStream为空;
静态JSONObject jObj=null;
静态字符串json=“”;
//建造师
公共JSONParser(){
}
公共JSONObject getJSONFromUrl(字符串url,列表参数){
//发出HTTP请求
试一试{
//defaultHttpClient
DefaultHttpClient httpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(url);
setEntity(新的UrlEncodedFormEntity(参数));
HttpResponse HttpResponse=httpClient.execute(httpPost);
HttpEntity HttpEntity=httpResponse.getEntity();
is=httpEntity.getContent();
}捕获(不支持的编码异常e){
e、 printStackTrace();
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
试一试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
is,“iso-8859-1”),8);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
json=sb.toString();
Log.e(“JSON”,JSON);
}捕获(例外e){
Log.e(“缓冲区错误”,“错误转换结果”+e.toString());
}
//尝试将字符串解析为JSON对象
试一试{
jObj=新的JSONObject(json);
}捕获(JSONException e){
Log.e(“JSON解析器”,“错误解析数据”+e.toString());
}
//返回JSON字符串
返回jObj;
}
}

SQLite: 公共类DatabaseHandler扩展了SQLiteOpenHelper{

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "new1";

// Login table name
private static final String TABLE_LOGIN = "login";

// Login Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_UID = "uid";
private static final String KEY_CREATED_AT = "created_at";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_LOGIN + "("
            + KEY_ID + " INTEGER PRIMARY KEY," 
            + KEY_NAME + " TEXT,"
            + KEY_UID + " TEXT,"
            + KEY_CREATED_AT + " TEXT" + ")";
    db.execSQL(CREATE_LOGIN_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_LOGIN);

    // Create tables again
    onCreate(db);
}

/**
 * Storing user details in database
 * */
public void addUser(String name, String uid, String created_at) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_NAME, name); // Name
    values.put(KEY_UID, uid); // Email
    values.put(KEY_CREATED_AT, created_at); // Created At

    // Inserting Row
    db.insert(TABLE_LOGIN, null, values);
    db.close(); // Closing database connection
}

/**
 * Getting user data from database
 * */
public HashMap<String, String> getUserDetails(){
    HashMap<String,String> user = new HashMap<String,String>();
    String selectQuery = "SELECT  * FROM " + TABLE_LOGIN;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    // Move to first row
    cursor.moveToFirst();
    if(cursor.getCount() > 0){
        user.put("name", cursor.getString(1));
        user.put("uid", cursor.getString(2));
        user.put("created_at", cursor.getString(3));
    }
    cursor.close();
    db.close();
    // return user
    return user;
}

/**
 * Getting user login status
 * return true if rows are there in table
 * */
public int getRowCount() {
    String countQuery = "SELECT  * FROM " + TABLE_LOGIN;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int rowCount = cursor.getCount();
    db.close();
    cursor.close();

    // return row count
    return rowCount;
}

/**
 * Re crate database
 * Delete all tables and create them again
 * */
public void resetTables(){
    SQLiteDatabase db = this.getWritableDatabase();
    // Delete All Rows
    db.delete(TABLE_LOGIN, null, null);
    db.close();
}
//所有静态变量
//数据库版本
私有静态最终int数据库_VERSION=1;
//数据库名称
私有静态最终字符串数据库\u NAME=“new1”;
//登录表名
私有静态最终字符串表\u LOGIN=“LOGIN”;
//登录表列名称
私有静态最终字符串密钥\u ID=“ID”;
私有静态最终字符串键\u NAME=“NAME”;
私有静态最终字符串键\u UID=“UID”;
私有静态最终字符串密钥\u CREATED\u AT=“CREATED\u AT”;
公共数据库处理程序(上下文){
super(上下文、数据库名称、null、数据库版本);
}
//创建表
@凌驾
public void onCreate(SQLiteDatabase db){
字符串CREATE\u LOGIN\u TABLE=“CREATE TABLE”+TABLE\u LOGIN+”(“
+密钥ID+“整数主键,”
+按键名称+“文本,”
+键UID+“文本,”
+在“+”文本“+”)处创建的按键;
execSQL(创建登录表);
}
//升级数据库
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
//删除旧表(如果存在)
db.execSQL(“如果存在删除表”+表登录);
//再次创建表
onCreate(db);
}
/**
*在数据库中存储用户详细信息
* */
public void addUser(字符串名称、字符串uid、创建的字符串){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(KEY_NAME,NAME);//NAME
value.put(KEY_UID,UID);//电子邮件
value.put(KEY_CREATED_AT,CREATED_AT);//CREATED AT
//插入行
db.insert(TABLE_LOGIN,null,value);
db.close();//关闭数据库连接
}
/**
*从数据库获取用户数据
* */
公共HashMap getUserDetails(){
HashMap用户=新建HashMap();
String selectQuery=“SELECT*FROM”+表\u登录;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
//移到第一排
cursor.moveToFirst();
if(cursor.getCount()>0){
user.put(“name”,cursor.getString(1));
user.put(“uid”,cursor.getString(2));
user.put(“created_at”,cursor.getString(3));
}
cursor.close();
db.close();
//返回用户
返回用户;
}
/**
*获取用户登录状态
*如果表中有行,则返回true
* */
public int getRowCount(){
String countQuery=“SELECT*FROM”+表\登录;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(countQuery,null);
int rowCount=cursor.getCount();
db.close();
cursor.close();
//返回行计数
返回行计数;
}
/**
*重新包装数据库
*删除所有表并重新创建它们
* */
公共无效重置表(){
SQLiteDatabase db=this.getWritableDatabase();
//删除所有行
db.delete(TABLE_LOGIN,null,null);
db.close();
}

}

您需要添加更多信息,以便任何人都能帮助您。