我正在尝试使用HttpURLConnection
类运行一个不需要任何参数的php脚本,该脚本位于免费的web托管服务器上。这是我的代码,在AsyncTask
:中
URL url = new URL("http://**********/connect.php");
HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();
urlconnection.setRequestProperty("Accept-Charset", "UTF-8");
urlconnection.setConnectTimeout(15000);
urlconnection.setDoOutput(true);
urlconnection.setRequestMethod("POST");
urlconnection.connect();
// add more code here to send a run request ?
urlconnection.disconnect();
我应该使用OutputStream
对象的write()
方法来发送"运行脚本"请求吗?建立到URL的连接难道不应该就足够了吗?(注意:在调试时,我没有得到任何异常,这意味着连接已经建立)。谢谢你的帮助!
不,你在这里做的就足够了。但是,要知道脚本是否正在运行,您当然需要解析服务器响应。这里的最低解决方案是检查响应代码。试试这个
int responseCode = conn.getResponseCode();
final String DEBUG_TAG = "DEBUG LOG";
Log.d(DEBUG_TAG, "Response code: " + response);
Log.d(DEBUG_TAG, "Script was running: " + (response == 200));
这里不需要POST方法,因为您不向脚本提供任何数据,所以使用GET。点击此处阅读更多信息http://developer.android.com/training/basics/network-ops/connecting.html
顺便说一句,我想补充一点,现在不建议使用HttpURLConnection库,而是使用Apache实现,或者使用一些更高级的库,如OkHttp或类似的库。