2008-09-23 118 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),因爲我希望能夠將其序列化爲一個字符串,因此我可以將「數據庫」保存爲用戶設置。