我正处于我的第一个 android 编程时代,我被困在这个问题上。
我正在尝试通过 PHP 在 android 项目中与 MySQL 数据库建立连接(登录页面)。我已经在我的网络中使用主机的 ip 地址在模拟器中取得了成功。但是,我似乎无法连接到外部 IP,这是支点,因为我的意思是在真实设备上实现它。
在设备上,由于它在网络之外,我无法以任何方式连接。
连接不成功的结果是崩溃,LogCat 停留在 Button - Login。
我已将 Internet 权限添加到清单中。
成功连接和不成功连接之间的唯一变化是地址(内部到外部)。
//JSON parser code:
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;
}
//Creating the JSON
JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);