大家好:
想請教,
我寫了一個APP連MYSQL
在本機測試都是OK的
我現在把我的PHP的API放到nas上
也有把我APP的連線網址改了
但他就是都無法登入
不知問題出在哪裡(是不是要開什麼port才可行之類的?
請高手們幫忙解答
謝謝
php 部分
<?php
require_once("db.php");
$emp_id=$_POST['emp_id'];
$pwd=$_POST['pwd'];
$sql = "select* from emp where emp_id='$emp_id' and pwd= '$pwd'";
$q=mysqli_query($db, $sql);
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
android部分
public class db {
public static String executeQuery(String emp_id,String passwd) {
String result = "";
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://192.168.1.2/tt/cont.php");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("emp_id", emp_id));
params.add(new BasicNameValuePair("pwd", passwd));
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream inputStream = httpEntity.getContent();
BufferedReader bufReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"), 8);
StringBuilder builder = new StringBuilder();
String line = null;
while((line = bufReader.readLine()) != null) {
builder.append(line + "\n");
}
inputStream.close();
result = builder.toString();
} catch(Exception e) {
}
return result;
}
}
你有開Android 網路權限的宣告嗎?
<uses-permission android:name="android.permission.INTERNET" />
有喔
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.leave"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/off" android:name=".off"/>
</application>
</manifest>
那你應該先逐步測試
先用webview連線http://192.168.1.2/tt/cont.php
看有無資料
若有資料的話~就是程式碼解析有問題~
若無資料的話~就是網路沒有開啟成功~
有可能你的android手機沒有在區網內吧?
你好:
我測試過囉
http://192.168.1.2/tt/cont.php
我可以直接用電腦/手機連到這網站
連進去裡面顯示null
我查了一下我手機的IP是
192.168.1.109
是同一網段的..