2

我目前正在尝试使用美国邮政服务的 Web 工具 API来验证用户的地址。但是,无论我使用何种信息组合或技术连接到 Web 服务,都会遇到相同的异常:

Unable to connect to the remote service

具有相同的内部异常

A connection attempt failed because the connected party did not properly respond after 
a period of time, or established connection failed because connected host has failed to 
respond 56.0.34.43:443

不过,我是WebClient第一次使用 C# 对象。谁能看到我在这里做错了什么?

    private const string USPS_USERID = "xxxxxxx";
    private const string BASEURL = "https://secure.shippingapis.com/ShippingAPITest.dll";

        try
        {
            string USPS = BASEURL + "?API=Verify&XML=<AddressValidateRequest USERID=\"" + USPS_USERID + "\">";
            USPS += "<Address ID='0'>";
            USPS += "<Address1>" + addressInfo[0] + "</Address1>";
            USPS += "<Address2>" + addressInfo[1] + "</Address2>";
            USPS += "<City>" + addressInfo[2] + "</City>";
            USPS += "<State>" + addressInfo[3] + "</State>";
            USPS += "<Zip5>" + addressInfo[4] + "</Zip5>";
            USPS += "<Zip4></Zip4>";
            USPS += "</Address></AddressValidateRequest>";

            WebClient wsClient = new WebClient();

            byte[] responseData = wsClient.DownloadData(USPS);

            string response = string.Empty;

            foreach (byte item in responseData)
            {
                response += (char) item;
            }

            return Json(response, JsonRequestBehavior.AllowGet);

        }
        catch (Exception ex)
        {
            return null;
        }
4

2 回答 2

2

USPS 网站已关闭!所以他们的服务器可能有问题。

于 2013-06-20T14:51:21.813 回答
2

对于邮寄地址(在美国),USPS 肯定是权威。但是,我从许多同行那里听说他们的 API 有点欠缺。由于 USPS API 不提供 SLA(服务水平协议),因此他们可以随时执行例行或非例行维护。因此,如果您绝对必须使用 USPS API,那么您就会被他们提供给您的任何东西以及他们所拥有的任何停机时间所困。

如果您可以选择考虑其他地址验证 API 服务,请在 Google 上快速搜索“地址验证 API”,您会看到其中一些最好的服务。您的选择范围从免费到非常昂贵。

因此,虽然我无法说明 USPS API 关闭的原因,但希望我能引导您使用更可靠的服务。我听说过easypost.com 的好消息,它是一项免费服务。您还拥有德克萨斯 A&M 大学,它提供免费的地址验证服务。因此,无论您找到什么服务,请确保您寻找的服务(免费或付费)实际上具有 SLA 且正常运行时间有保证,可以满足您的需求。

我在 SmartyStreets 工作了将近三年,所以我对地址验证略知一二。

于 2013-06-20T16:52:26.033 回答