2008-09-23 20 views

Respuesta

9

Si sólo necesita la información de Estados Unidos, el Servicio Postal de los Estados Unidos proporciona un conjunto de servicios web que llama WebTools para esta cosa exacta. https://www.usps.com/business/web-tools-apis/welcome.htm. Tendrá que registrarse para poder usarlos, pero una vez que está registrado, es realmente fácil de usar. Simplemente envía una solicitud XML a través de HTTP y el servidor envía una respuesta XML y solo tiene que descomprimirla. solicitud

muestra: la respuesta

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> 

muestra:

<?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> 

Aquí hay un enlace a la documentación técnica: https://www.usps.com/business/web-tools-apis/documentation-updates.htm

+0

Este enlace ya no está disponible, muestra el archivo o la página solicitada no encontrada –

1

Una buena fuente de datos geográficos, incluyendo operaciones de búsqueda y los datos de mapeo para los EE. UU. es el TIGER Data set de la Oficina del Censo de EE. UU. Ya no siguen activamente los datos del código postal, pero todavía tienen un 1999 vintage file disponible.

Por países, la lista de códigos de país ISO está disponible públicamente.

No conozco los recursos de información fuera de los EE. UU.

14

http://www.geonames.org/

eso es lo mejor que he encontrado. Le permiten descargar y alojar el servicio web usted mismo, lo que también es agradable.

2

servicios de A que funciona bien con .Net (ya que aprovecha WSDL) es http://www.webservicex.net. Tienen un servicio para códigos postales de EE. UU. Disponible en http://www.webservicex.net/uszip.asmx. Simplemente puede agregarlo como un servicio y Visual Studio se encargará del resto. La respuesta viene como una respuesta XML, por lo que tendrá que analizarla, pero puede usar algo simple como USZIP.GetInfoByZIP(ZIP).SelectSingleNode("//STATE").InnerText.

Para mi solicitud luego construyeron una caché en memoria de los datos XML utilizando estas direcciones siguientes: http://www.15seconds.com/issue/010410.htm. Utilicé XML en lugar de HashTable o Dictionary(TKey, TValue) porque quería poder serializarlo en una cadena para poder guardar la 'base de datos' como configuración de usuario.

Cuestiones relacionadas