无法发送Android请求

时间:2016-01-07 22:24:33

标签: android http get altbeacon

我已经修改了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(或任何可能对我的情况有帮助的替代方法)实现这一点的一些帮助。

1 个答案:

答案 0 :(得分:2)

你错过了一步:

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