Java http get android应用程序崩溃没有结果也没有错误
首先,我对Java非常陌生,我正在尝试为家庭自动化制作一个应用程序。 在服务器端,我有一个PHP脚本可以切换我的灯光,现在我想用android发送一个Get请求来运行PHP脚本,因为PHP是服务器端的。 现在,当我按下按钮时,应用程序“just”崩溃,日志中没有任何内容 这是我的按钮代码:Java http get android应用程序崩溃没有结果也没有错误,java,android,http-get,Java,Android,Http Get,首先,我对Java非常陌生,我正在尝试为家庭自动化制作一个应用程序。 在服务器端,我有一个PHP脚本可以切换我的灯光,现在我想用android发送一个Get请求来运行PHP脚本,因为PHP是服务器端的。 现在,当我按下按钮时,应用程序“just”崩溃,日志中没有任何内容 这是我的按钮代码: Button bA = (Button) findViewById(R.id.button); bA.setOnClickListener(new View.OnClickListener() {
Button bA = (Button) findViewById(R.id.button);
bA.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet();
URI Aswitch = new URI("http://192.168.1.186/a-switch.php");
request.setURI(Aswitch);
HttpResponse response = httpclient.execute(request);
} catch (ClientProtocolException e){
Log.e("log_tag", "ClientProtocol error");
} catch(IOException e){
Log.e("log_tag", "IO error");
} catch(URISyntaxException e) {
Log.e("log_tag", "URISytax error");
}
}
});
也许你是在主线程上提出这个请求。使用
AsyncTask
执行网络请求。
另外,不要忘记将权限添加到清单文件中,请尝试以下操作:
Button bA = (Button) findViewById(R.id.button);
bA.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet();
URI Aswitch = new URI("http://192.168.1.186/a-switch.php");
request.setURI(Aswitch);
HttpResponse response = httpclient.execute(request);
} catch (ClientProtocolException e){
Log.e("log_tag", "ClientProtocol error");
} catch(IOException e){
Log.e("log_tag", "IO error");
} catch(URISyntaxException e) {
Log.e("log_tag", "URISytax error");
}
}
}).start();
}
});
检查LogCat。很可能是你的日志?我们无法预测您的错误。如果url的内容与正确的输出不匹配(即我在家庭网络之外),是否也可以通过VPN发送请求?请就此提出一个严肃的问题。