0

我尝试使用示例 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 中读取该信息,而不是从我提供的地址中读取。

4

1 回答 1

1

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

如果您查看SmartyStreets 站点上的美国街道地址 API 文档Example Output - Valid Address,您会看到一个部分,其中显示了返回的公共数据。

"components"对象中,您可以看到city_nameand state_abbreviation。如果您查看"metadata"对象,您可以看到county_name.

如果您点击“美国街道地址 API”,那么所有地址都将“美国”作为国家/地区。没有必要退货。如果您使用“国际街道地址 API”,您将包含国家/地区信息。

于 2018-12-31T22:46:31.997 回答