无法发送 HTTP 请求 Android

Cannot send HTTP request Android

我修改了 Albeacon Reference Application 的 RangingActivity,以便在每次检测到与信标相关的更改时发送 HTTP 请求。我只需要向服务器发送一个请求,仅此而已。无需进一步互动。

在发出 HTTP 请求之前一切正常 - 没有任何反应:

@Override
public void onBeaconServiceConnect() {
    beaconManager.setRangeNotifier(new RangeNotifier() {
        @Override
        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
            if (beacons.size() > 0) {
                Beacon firstBeacon = beacons.iterator().next();
                logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
                String distance = String.valueOf(firstBeacon.getDistance());
                String url_string = "http://" + IP_string + "/index.py?name=" + Name_string + "&location=" + beacons.iterator().next().getId2() + "," + beacons.iterator().next().getId3() + "&distance=" + beacons.iterator().next().getDistance();
                Log.v("url", url_string);

                try {URL url = new URL(url_string);
                    try {
                        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                        conn.disconnect();
                    } catch (IOException e){Log.v("error", e.toString());}
                } catch (MalformedURLException m){Log.v("error", m.toString());}

                }
            }
        });

    try {
        beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
    } catch (RemoteException e) {   }
}

我是 Android 的新手,所以我不确定这是否是 UIThread 上的 运行。如果是,那么我将非常感谢使用 Asynctasks(或任何可能对我的情况有帮助的替代方法)实现此功能的一些帮助。

你错过了一步:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.disconnect();

试试看:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
int response = conn.getResponseCode();
Log.d(DEBUG_TAG, "The response is: " + response);
is = conn.getInputStream();
conn.disconnect();

最后阅读:http://developer.android.com/training/basics/network-ops/connecting.html