![](/img/trans.png)
[英]How to access the setRequestProperty set from the Android device from PHP code?
[英]How to access localhost from a real android device
我目前正在嘗試使我的真實android設備(三星Galaxy S4 mini)訪問本地主機中的php腳本。 以下代碼是我擁有的位代碼。 該代碼應該使用創建的login_tenant.php腳本檢查用戶名和密碼是否存在於我的mysql數據庫中。
編碼:
void loginAsTenant() {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://10.0.2.2/aircraftoperatorapp/login_tenant.php");
String username = txtUsername.getText().toString();
String password = txtPassword.getText().toString();
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));
response = httpclient.execute(httpPost);
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
final String response = httpclient.execute(httpPost, responseHandler);
System.out.println("Response: " + response);
runOnUiThread(new Runnable() {
public void run() {
//lblResponse.setText("Response from PHP: " + response);
dialog.dismiss();
}
});
if(response.equalsIgnoreCase("User Found")){
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(Homepage.this,"Login Success", Toast.LENGTH_SHORT).show();
//Intent i = new Intent(getApplicationContext(), ArrivalTimeSched.class);
//startActivity(i);
}
});
Intent intent = new Intent("com.example.aircraftoperatorapp.TenantPage");
users = new Bundle();
users.putString("loggedInTenant", username);
intent.putExtras(users);
startActivityForResult(intent, requestCode);
}
else {
showAlert();
}
}
catch (Exception e ){
dialog.dismiss();
System.out.println("Exception : " + e.getMessage());
}
}
我可以從仿真器訪問本地主機,它運行正常。 但
當我在物理設備中運行此命令時,它返回錯誤:“與10.0.2.2的異常連接被拒絕。
你們中的一些人能告訴我如何解決這個問題嗎? 我嘗試了幾件事,但沒有成功1.我將本地主機的路徑更改為10.0.2.2:8080 ..依此類推2.我關閉了防火牆3.我嘗試將路徑替換為手機的IP地址。
有什么建議么? 感謝您的幫助! 提前致謝!
因此,通過模擬器您可以訪問本地主機,但無法從android設備訪問同一主機。
這意味着您的Android設備使用2G / 3G或WIFI連接來訪問本地主機。 如果那時使用本地主機進行連接,那么您必須位於同一網絡中,那么只有您可以訪問本地主機。
但是在仿真器中,您可以在同一網絡(可能是本地主機網絡)中運行,這就是為什么。
最后,可能的解決方案是
還要在Android設備中使用相同的網絡(本地主機網絡)。 意味着使用Wifi連接到相同的本地主機Internet連接。 這次2G / 3G連接無法使用,因為它們不在同一網絡中
將構建部分部署到外部,並訪問外部IP地址進行連接。 這次2G / 3G或WIFI都可以使用
是否可以檢查/ etc / apache2 / sites-available / default文件,下面的行本身是否是這樣(允許)還是拒絕?
<Directory />
AllowOverride All
</Directory>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.