通过提供邮编获取城市名称的Web服务

10

我需要一个可靠的Web服务,可以通过输入邮政编码来获取对应的城市名称。该 Web 服务应始终正常工作,并将在生产环境中使用。


仅限于美国或全球。首选美国。 - karthik k
6个回答

12
我找到了几种基于Web的API来实现这个功能。我认为美国邮政服务可能是最准确的,因为邮编是他们的专长,但Ziptastic看起来更简单。

使用美国邮政服务HTTP/XML API

根据美国邮政服务网站上介绍其基于XML的Web API的页面,特别是此PDF文档的第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还有其他功能:您可以执行地址标准化和邮政编码查找,以及整套跟踪、发货、标签等服务。

使用Ziptastic HTTP/JSON API

这是一个相当新的服务,但根据他们的文档,看起来你只需要向 http://ziptasticapi.com 发送GET请求,就像这样:

GET http://ziptasticapi.com/48867

他们将返回一个类似于以下的JSON对象:
{"country": "US", "state": "MI", "city": "OWOSSO"}

确实有效。您可以通过从命令行执行以下操作来测试:

curl http://ziptasticapi.com/48867 

非常简单的API。谢谢。 - Paul Chernoch

5

这看起来是一个非常好的选择,你只需要传入ZIP代码,然后它会返回城市名称以及经纬度的JSON字符串。 - CrowderSoup
在将此URL添加为Web引用时出现错误。 - karthik k
http://www.geonames.org/export/client-libraries.html - Daniel A. White

2

将此URL添加为Web引用后,我无法获取Web服务的方法。 - karthik k
1
http://www.webservicex.net/uszip.asmx 将提供给您方法。 - Stuart Siegler
再次感谢你,Stuart。实际上是+2。 - MethodMan
此服务不针对特定邮政编码提供。一些例子包括:89179、75965、72019、33449、76549、75803、97703、76210、84005。 - Sana Ahmed
1
@Sana,zipwise是免费的:https://www.zipwise.com/webservices/ - Stuart Siegler
显示剩余3条评论

2

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接