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

时间:2011-06-03 13:13:50

标签: c# asp.net web-services sharepoint sharepoint-2010

我需要一个可靠的网络服务,通过传递邮政编码来提供相应的城市名称。此Web服务应该随时可用。此Web服务也将用于生产。

6 个答案:

答案 0 :(得分:11)

我找到了几种基于Web的API的方法。我认为US Postal Service是最准确的,因为邮政编码是他们的事情,但Ziptastic看起来更容易。

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

根据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还有一些其他功能:你可以做地址标准化和邮政编码查询,以及整套跟踪,运输,标签等。

使用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 

答案 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)

如果您想获得某些城市/州信息,这可能符合您的需求:

http://www.usps.com/webtools/address.htm

它是您注册的API。