我正试图在我的Android应用程序中获取lat和long。我收到了各种错误,最后一个是javax.net.ssl.SSLHandshakeException: Handshake failed
。
这是我的代码,我尝试通过检查网络来做某事,但它不起作用。
private static final String getLatLongUrl = "https://maps.googleapis.com/maps/api/geocode/xml?address=#ADDRESS#&key=";
public String getLatLong(){
String json = "{\"key\":1}";
String urlS = getLatLongUrl;
urlS = urlS.replace("#ADDRESS#", address);
urlS += apiKey;
String json = "{\"key\":1}";
try {
URL url = new URL(urlS);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(json);
wr.flush();
wr.close();
String tag[] = { "lat", "lng" };
InputStream stream = conn.getInputStream();
conn.disconnect();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document doc = builder.parse(stream);
if (doc != null) {
NodeList nl;
ArrayList args = new ArrayList();
for (String s : tag) {
nl = doc.getElementsByTagName(s);
if (nl.getLength() > 0) {
Node node = nl.item(nl.getLength() - 1);
args.add(node.getTextContent());
} else {
args.add(" - ");
}
}
String result = "lat:" + args.get(0) + " long:" + args.get(1);
return result;
}
} catch(Exception ex){
return "";
}
return "";
}
可能我失败了,但我无法弄清楚是什么,这是我的第一次httlUrlConnection
和GoogleApi
。感谢所有
答案 0 :(得分:0)
由于您的网址前缀为Https
,因此您应该使用UrlConnection
http://developer.android.com/training/articles/security-ssl.html