无法使用USPS Web Tools API连接到远程服务器

时间:2013-06-19 21:00:15

标签: c# webclient usps

我目前正在尝试使用United States Postal Service's Web Tools 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

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

    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;
        }

2 个答案:

答案 0 :(得分:2)

USPS网站已关闭!所以他们可能在服务器上遇到问题。

答案 1 :(得分:2)

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

如果您可以选择考虑其他地址验证API服务,快速谷歌搜索“地址验证API”将向您展示一些最好的地址验证API服务。你有从免费到非常昂贵的选择。

所以,虽然我不能说USP API失败的原因,但希望我能引导您获得更可靠的服务。我听说过easypost.com的好消息,这是一项免费服务。您还拥有德克萨斯A&amp; M大学,其免费address verification service。因此,无论您找到什么样的服务,请确保您找到一个(免费或付费)实际拥有SLA且保证正常运行时间能够满足您需要的服务。

我已经在SmartyStreets工作了将近三年,因此我对地址验证了解了一两件事。