Web服务通过提供邮政编码来获取城市名称

kar*_*k k 9 c# asp.net sharepoint web-services sharepoint-2010

我需要一个可靠的webserivce,通过传递邮政编码给出相应的城市名称.此Web服务应该随时可用.此Web服务也将用于生产.

Ric*_*nes 12

我发现了几种基于Web的API的方法.我认为美国邮政服务将是最准确的,因为邮政编码是他们的东西,但Ziptastic看起来更容易.

使用US Postal Service 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>
Run Code Online (Sandbox Code Playgroud)

这是你会得到的回报:

<?xml version="1.0"?> 
<CityStateLookupResponse> 
    <ZipCode ID="0"> 
        <Zip5>90210</Zip5> 
        <City>BEVERLY HILLS</City> 
        <State>CA</State> 
    </ZipCode> 
</CityStateLookupResponse>
Run Code Online (Sandbox Code Playgroud)

USPS 确实要求您在使用API​​之前注册它们,但据我所知,访问是免费的.顺便说一下,他们的API还有其他一些功能:你可以做地址标准化和邮政编码查询,以及整套跟踪,运输,标签等.

使用Ziptastic HTTP/JSON API

这是一项非常新的服务,但根据他们的文档,看起来您需要做的就是向http://ziptasticapi.com发送GET请求,如下所示:

GET http://ziptasticapi.com/48867
Run Code Online (Sandbox Code Playgroud)

他们将返回一个JSON对象:

{"country": "US", "state": "MI", "city": "OWOSSO"}
Run Code Online (Sandbox Code Playgroud)

确实,它有效.您可以通过执行以下操作从命令行对此进行测试:

curl http://ziptasticapi.com/48867 
Run Code Online (Sandbox Code Playgroud)