我需要一个可靠的网络服务,通过传递邮政编码来提供相应的城市名称。此Web服务应该随时可用。此Web服务也将用于生产。
答案 0 :(得分:11)
我找到了几种基于Web的API的方法。我认为US Postal Service是最准确的,因为邮政编码是他们的事情,但Ziptastic看起来更容易。
根据page on the US Postal Service website which documents their XML based web API,特别是this PDF document的第4.0节(第22页),他们有一个URL,您可以在其中发送包含5位邮政编码的XML请求,他们将使用XML进行响应包含相应城市和州的文件。
根据他们的文档,这是你要发送的内容:
http://SERVERNAME/ShippingAPITest.dll?API=CityStateLookup&XML=<CityStateLookupRequest%20USERID="xxxxxxx"><ZipCode ID= "0"><Zip5>90210</Zip5></ZipCode></CityStateLookupRequest>
这就是你要收到的东西:
<?xml version="1.0"?>
<CityStateLookupResponse>
<ZipCode ID="0">
<Zip5>90210</Zip5>
<City>BEVERLY HILLS</City>
<State>CA</State>
</ZipCode>
</CityStateLookupResponse>
USPS 确实要求您在使用API之前注册它们,但据我所知,访问是免费的。顺便说一下,他们的API还有一些其他功能:你可以做地址标准化和邮政编码查询,以及整套跟踪,运输,标签等。
这是一项非常新的服务,但根据他们的文档,看起来您需要做的就是向http://ziptasticapi.com发送GET请求,如下所示:
GET http://ziptasticapi.com/48867
他们将返回一个JSON对象:
{"country": "US", "state": "MI", "city": "OWOSSO"}
确实,它有效。您可以通过执行以下操作从命令行对此进行测试:
curl http://ziptasticapi.com/48867
答案 1 :(得分:5)
答案 2 :(得分:2)
答案 3 :(得分:2)
Yahoo PlaceFinder API适用于此类查询。
http://developer.yahoo.com/geo/placefinder/guide/index.html
我相信
http://where.yahooapis.com/geocode?appid=<appID>&postal=<zipCode>
将为您提供所需的信息。
答案 4 :(得分:1)
此外,http://www.zipwise.com/webservices免费提供XML和JSON结果,用于邮政编码查询,半径搜索,反向查找和纬度/经度内容。
答案 5 :(得分:0)