我正在制作地图应用程序(Android),我需要在信息中制作带有街道地址的点击标记。经过几次糟糕的尝试,我发现Geocoder/get-from位置不再工作(返回一个带有null指针的空数组)。我在这里发现的链接,我可以做一个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();
}
Deprecated只是Apache HTTP客户端。但是,对于HTTP请求,您可以始终使用HttpURLConnection
有一份培训材料,里面有一个代码示例。http://developer.android.com/training/basics/network-ops/connecting.html