2012-06-08 107 views
0

当确认地址,我得到这个错误:USPS地址验证失败

ex = {"Error Loading XML: The following tags were not closed: AddressValidateRequest, Address, Address1.\r\n"} 

或者我得到另一个错误说的地址无法找到。有没有更好的方法来验证这个地址?

这里是我的网址:

http://production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=<AddressValidateRequest USERID="402JMAWE3481"><Address ID="1"><Address1>123 Main St</Address1><Address2></Address2><City>Watertown</City><State>MA</State><Zip5>02472</Zip5><Zip4></Zip4></Address></AddressValidateRequest> 
+1

请不要修改这个问题,打破XML了多行,因为这这不是OP发送的内容。该OP将URL作为单行发送。如果您需要查看[XML自身是否“有效”,请参阅下面的转储](http://pastie.org/4052770)。 – user7116

回答

3

据我所看到的错误描述,该问题可能是,你需要把它添加到URL 前从XML中除去\r\n。不要忘记也要对它进行网址编码。

+0

我原本编辑的URL准确地反映了OP发送到服务器的内容,然而,ErikPhilips添加了新行......但是+1对“Url编码”进行了编码。 – user7116

+0

@sixlettervariables:感谢您的信息。 –

+0

如果我说123 Main St#41,我需要删除#号,所以出现了编码问题。此外,街道地址应在地址2上,而适配号在地址1上 –

0

你实际上需要HtmlEncode它,然后UrlEncode它。 这是becasue你实际发送XML(这需要&amp;代替&),但它的一个URL因此它需要编码,使每个&%26

下面是一个完整的工作URL - 你只需把你的USERID 。

http://production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=<AddressValidateRequest USERID="123USERID567"><Address ID="1"><Address1></Address1><Address2>10051+Orr+%26amp%3b+Day+Rd</Address2><City>santa+fe+springs</City><State>ca</State><Zip5>90670</Zip5><Zip4></Zip4></Address></AddressValidateRequest> 

你会看到它包含了这个时髦寻找字符串:

10051+Orr+%26amp%3b+Day+Rd 

这我做这个:

HttpUtility.UrlEncode(HttpUtility.HtmlEncode("10061 Orr & Day Rd")) 

[此特定错误我回来的时候我没”牛逼编码正确是Error Loading XML: Whitespace is not allowed at this location]