我正在制作地图应用(Android),我需要在信息中制作带有街道地址的点击标记。经过几次糟糕的尝试后,我看到Geocoder / get from location不再起作用了(返回一个带空指针的空数组)。 我在这里找到了 LINK我可以向Google发送HTTP / S请求,我将返回JSON / XML。 我的问题是:如何在HTTP客户端被取消时发出HTTP请求(示例)?您能给我一个代码示例来发送请求并以JSON(或至少仅发送)来计算响应吗?
编辑:我收到了这个:android.os.NetworkOnMainThreadException
try {
URL url = new URL(baseUri+builder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect(); \\exception originated here
is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is));
for (String line = null; (line = reader.readLine()) != null;) {
builder.append(line).append("\n");
}
jsonresponse = new JSONArray(builder.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
不推荐使用只是Apache HTTP客户端。但您始终可以将HttpURLConnection
用于HTTP请求
有一个带有代码示例的培训材料。
http://developer.android.com/training/basics/network-ops/connecting.html