如何从SmartyStreet API获取国家,州,县和城市?

时间:2018-12-30 17:26:02

标签: smartystreets

我尝试使用示例API,但似乎缺少某些参数。 这是我尝试过的API。

        public W_AddressStateCity GetAddressStateCityInfo(W_CustomerAddress oAddress)
    {
        W_AddressStateCity oAddStateCity = new W_AddressStateCity();
        var client = new ClientBuilder(AuthID, AuthToken).BuildUsStreetApiClient();

        var lookup = new Lookup
        {
            Street = oAddress.AddressStreetAddress1,
            Street2 = oAddress.AddressStreetAddress2,
            City = oAddress.AddressCity,
            State = oAddress.AddressState,
            ZipCode = oAddress.AddressZipCode
        };

        try
        {
            client.Send(lookup);
        }
        catch (SmartyException ex)
        {
            // Console.WriteLine(ex.Message);
            //  Console.WriteLine(ex.StackTrace);
        }
        var candidates = lookup.Result;

        oAddStateCity.Country = candidates[0].Metadata.Country;
        oAddStateCity.State = candidates[0].Metadata.State;
        oAddStateCity.County = candidates[0].Metadata.CountyName;
        oAddStateCity.City = candidates[0].Metadata.City;

        return oAddStateCity;
    }

只有CountyName可用。在将地址输入此API之前,始终先对其进行验证。 我如何阅读国家,州和城市? 我想从我提供的地址中读取API中的信息。

1 个答案:

答案 0 :(得分:1)

我假设您是指“美国街道地址API”。 SmartyStreets具有多个API。

如果您在SmartyStreets网站上查看US Street Address API documentation,则会看到一个Example Output - Valid Address部分,其中显示了返回的常用数据。

"components"对象中,您可以看到city_namestate_abbreviation。如果您查看"metadata"对象,则会看到county_name

如果您点击“美国街道地址API”,那么所有地址都将“美国”作为国家/地区。无需返回。如果您使用“国际街地址API”,则会包含国家/地区信息。

相关问题