2008-09-23 79 views

回答

9

如果您只需要美国的信息,美国邮政服务提供了一套Web服务,它为此调用了WebTools。 https://www.usps.com/business/web-tools-apis/welcome.htm。你需要注册才能使用它们,但是一旦你注册了它们,使用起来非常简单。您只需通过HTTP发送XML请求,服务器就会发回XML响应,您只需将其解压缩即可。

样品请求:

http://SERVERNAME/ShippingAPITest.dll?API=Verify&XML=<AddressValidateRequest%20USERID="xxxxxxx"><Address ID="0"><Address1></Address1><Address2>6406 Ivy Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest> 

示例响应:

<?xml version="1.0"?> 
<AddressValidateResponse> 
    <Address ID="0"> 
     <Address2>6406 IVY LN</Address2> 
     <City>GREENBELT</City> 
     <State>MD</State> 
     <Zip5>20770</Zip5> 
     <Zip4>1441</Zip4> 
    </Address> 
</AddressValidateResponse> 

这里的技术文档的链接: https://www.usps.com/business/web-tools-apis/documentation-updates.htm

+0

此链接不再可用,显示文件或页面请求未找到 – 2017-06-04 18:16:47

1

地理数据,包括查找和映射数据的良好来源美国是美国人口普查局的TIGER Data set。他们不再积极跟踪邮政编码数据,但他们确实有一个1999 vintage file仍然可用。

对于国家,ISO国家代码列表是公开可用的。

我不知道美国以外的信息资源。

14

http://www.geonames.org/

这是最好的一个,我发现。他们让你自己下载和托管网络服务,这也很好。

2

与.Net协同工作的服务(因为它利用了WSDL)是http://www.webservicex.net。他们为美国邮政编码http://www.webservicex.net/uszip.asmx提供服务。您可以将其作为服务添加,并由Visual Studio负责其余部分。响应以XML响应形式出现,因此您必须对其进行解析,但您可以使用简单的方法,如USZIP.GetInfoByZIP(ZIP).SelectSingleNode("//STATE").InnerText

对于我的应用程序,我使用XML按照以下说明构建了一个内存数据库缓存:http://www.15seconds.com/issue/010410.htm。我使用XML而不是HashTableDictionary(TKey, TValue),因为我希望能够将其序列化为一个字符串,因此我可以将“数据库”保存为用户设置。