我想构建一个访问USPS地址Web服务的Web服务请求。 我遇到了以他们想要的格式构建请求URL字符串的问题。 我想要做的是将邮政编码放在一个变量中,以便它可以是动态的。 但USPS网络服务并不接受我发送的URL字符串,我猜这个格式是错误的。
USPS期望的格式是:
<CityStateLookupRequest USERID=”xxxxxxxx”>
<ZipCode ID="0">
<Zip5>90210</Zip5>
</ZipCode>
<ZipCode ID="1">
<Zip5>20770</Zip5>
</ZipCode>
</CityStateLookupRequest>
https://servername/ShippingAPI.dll?API=CityStateLookup&XML=<CityStateLookupRe
quest USERID="username">.......</CityStateLookupRequest>
这就是我尝试构建网址的方式:
WebRequest USPSReq = String.Format("http://production.shippingapis.com/ShippingAPI.dll?API=CityStateLookup&XML=CityStateLookupRequest&USERID=xxxxxxxx&ZipCode ID=0&Zip5=" + oZip);
如何构建此请求网址?
答案 0 :(得分:1)
使用您喜欢的XML API简单地构建XML。例如:
XDocument requestXml = new XDocument(
new XElement("CityStateLookupRequest",
new XAttribute("USERID", userID),
new XElement("ZipCode",
new XAttribute("ID", "0"),
new XElement("ZIP5", zip5)));
var requestUrl = new UriBuilder("http://production.shippingapis.com/ShippingAPITest.dll");
requestUrl.Query = "API=CityStateLookup&XML=" + requestXml.ToString();
var request = WebRequest.Create(requestUrl.Uri);