使用HttpUrlConnection在没有任何参数的服务器上执行php脚本


Executing a php script on a server without any params with HttpUrlConnection

我正在尝试使用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或类似的库。