我使用以下方法使用Apache HTTP客户端调用Google Maps API。
protected synchronized String submitUrl(String url) throws AjApiException {
//split off the parameters for the post
String uri = extractUri(url);
HttpPost httpPost = new HttpPost(uri);
httpPost.setEntity(buildHttpEntityParmsFromUrl(url));
String json = null;
try {
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
//should be JSON
Header header = entity.getContentType();
log.debug("Content type:" + header.getValue());
//read the body
json = readBody(entity.getContent());
// Read any remaining portions of the entity so we don't keep the data around
EntityUtils.consume(entity);
}
catch (ClientProtocolException cpe) {
String msg = "Error using:" + url;
log.error(msg, cpe);
throw new AjApiException(msg, cpe);
}
catch (IOException ioe) {
String msg = "Error using:" + url;
log.error(msg, ioe);
throw new AjApiException(msg, ioe);
}
finally {
httpPost.releaseConnection();
}
log.debug("Results:" + json);
if(json.startsWith(KeyNames.ERROR_INDICATOR)){
List<String> parts = TranslationHelper.parseCsvLine(json.trim());
String msg = parts.get(1);
int errRsn;
try {
errRsn = Integer.parseInt(parts.get(2));
}
catch (NumberFormatException nfe) {
errRsn = KeyNames.ERRRSN_UNDEFINED;
}
throw new AjApiException(msg, errRsn);
}
else{
return json;
}
}
/**
* From a URL, extract everything up to the parameters
* @param url the url
* @return the resource path from the URL
*/
public static final String extractUri(String url){
String result = null;
int pos = url.indexOf("?");
if(pos>=0){
//strip the parms
result = url.substring(0, pos);
}
else{
//no parms, just return
result = url;
}
return result;
}
/**
* Remove the parameters coded on the URL and create an
* HttpParams object with those parameters
* @param url the URL
* @return the http parameters
*/
public static UrlEncodedFormEntity buildHttpEntityParmsFromUrl(String url){
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
int pos = url.indexOf("?");
if(pos>=0){
//process parms
String queryString = url.substring(pos + 1).trim();
if(queryString.length() > 0){
String[] queryParms = queryString.split("&");
for(String queryParm:queryParms){
String[] parts = queryParm.split("=");
formparams.add(new BasicNameValuePair(parts[0], parts[1]));
}
}
}
UrlEncodedFormEntity result;
try {
result = new UrlEncodedFormEntity(formparams);
}
catch (UnsupportedEncodingException uee) {
throw new IllegalStateException(uee);
}
return result;
}
我传入的url是:http://maps.googleapis.com/maps/api/directions/json?sensor=false&origin=PO+BX+4471,TUSTIN,CA,92782&Destination=700+Civic+Center+Drive+West+-+3RD+Flool,Santa+Ana,CA-California,92702调用谷歌地图API。
{
"routes" : [],
"status" : "REQUEST_DENIED"
}
在这一点上,我不知道该去哪里。
问题是由于我的软件使用HTTP Post而Google只接受GET。我改打电话来解决这个问题。
我正在使用R中的ggmap包和Google Maps API对街道地址(n=18,000)进行地理编码,据我所知,每天对地址的地理编码请求限制为2,500次。 我正在使用的地理编码脚本非常简单,适用于我尝试过的小型测试df(如下面的示例),但我想知道在接下来的~7天内为每个2500行块拼接所有18000个位置的最终地理编码df的最简单/优雅的方法。 我考虑过只按天对它们进行编号,然后在最后将它们绑
我在Scala2.11.1和Hzaelcast 3.5中使用kryo进行序列化。我试图将数据放在hazelcast映射中,但我得到了KryoException 下面是我的用户类序列化程序 现在,当我将用户类对象从Hcast客户端放入相应的映射中时,如下所示 它给了我这些例外: 以下是中的 请帮帮我!!
本文向大家介绍webpack proxy 使用(代理的使用),包括了webpack proxy 使用(代理的使用)的使用技巧和注意事项,需要的朋友参考一下 为什么要写篇文章 这两天的开发中遇到一些需要代理才能解决的问题, 在这里记录一下, 方便以后的查阅. 为什么要用代理 跨域 在开发过程中, 我们的开发环境一般都是http:// localhost, 但是如果需要请求的数据不在本地, 那么我们就
如何使用Spring RestTemplate发送GET请求?其他问题都用了POST,但我需要用get。当我运行这个程序时,程序继续工作,但似乎网络堵塞了,因为它在一个AsyncTask中,当我单击这个按钮后试图运行另一个AsyncTask时,它们将无法工作。 我试着做
问题内容: 最近,我尝试了解 java.math.MathContext 的用法,但未能正确理解。它用于四舍五入。如果是,为什么不四舍五入十进制数字,甚至尾数部分。 从API文档中,我知道它遵循,和规范中指定的标准,但是我没有让他们在线阅读。 如果您对此有任何想法,请告诉我。 问题答案: @贾坦 谢谢您的回答。这说得通。您能否在BigDecimal#round方法的上下文中向我解释MathCont
主要内容:下载 Nexus 3,启动 nexus 服务,访问 nexus 3.x目前 Nexus 分为 Nexus 2 和 Nexus 3 两个大版本,它们是并行的关系。与 Nexus 2 相比,Nexus 3 具有很多优势,例如支持更多的仓库格式、优化了用户的使用界面以及更加强大的搜索功能等等。 目前使用最多的,运行最稳定是 Nexus 2,但随着 Nexus 3 对 Maven 的支持越来越稳定,很多公司和组织都陆续开始使用 Nexus 3。 本节我们将介绍 Nexus