在将curl命令转换为Java httpPost时遇到一些麻烦。我正在尝试联系人口普查局地址批处理端点。我可以联系它,但收到回复,指出有问题。
curl命令位于此https://geocoding.geo.census.gov/geocoder/Geocoding_Services_API.pdf
的最后一页必需的参数表明它需要基准,vintage和addressFile,因此我尝试使用它们。 addressFile本身是一个我在这里https://geocoding.geo.census.gov/geocoder/locations/addressbatch?form
的csvDefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response;
try {
String url = "https://geocoding.geo.census.gov/geocoder/geographies/addressbatch"
HttpPost httpPost = new HttpPost(url);
MultipartEntity postEntity = new MultipartEntity();
postEntity.addPart("addressFile", new FileBody(new File("addresses.csv")));
postEntity.addPart("benchmark", new StringBody("Public_AR_Current"));
postEntity.addPart("vintage", new StringBody("Public_AR_Current"));
httpPost.setEntity(postEntity);
response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
StringWriter writerResponse = new StringWriter();
IOUtils.copy(responseEntity.getContent(), writerResponse, "UTF-8");
print response.getStatusLine()
print writerResponse.toString()
} catch (IOException e) {
print e
}
finally {
httpClient.getConnectionManager().shutdown();
}
这样,我得到一个代码400错误
HTTP / 1.1 400错误的请求
尝试对批次进行地理编码 输入,验证和处理参数时发生错误 提供了。
请验证基准年份(如果 这是一个地理区域批处理地理编码请求)和addressFile 正在使用的参数值,然后重试您的批处理地址代码 请求。
更多信息和文档(在 HTML和PDF格式)有关人口普查地理编码器以及如何使用它的信息 可以在这里找到:https://geocoding.geo.census.gov/geocoder/'> https://geocoding.geo.census.gov/
是否有关于我做错事情的想法?对于我做错了什么,反应不是很明确。
答案 0 :(得分:0)
原来,API指令不正确。 vintage和基准参数需要具有整数值的字符串,而不是具有基准/年份名称的字符串。