ASP: XML Transmission to USPS

liunx

Guest
I am trying to send an XML transmission to the US Postal Service to retrieve shipping rates but so far have been unsuccessful. My latest HTTP Status code is 501 and the HTTP Status text is "Not Implemented". I have no problem sending successful transmissions to both Fedex or UPS but USPS does things differently.

According to the USPS documentation, the XML is sent to "http://testing.shippingapis.com/ShippingAPItest.dll?" & "API=Rate&XML=" & XMLString

The XML and ASP code being used are below. Can anyone help with this? Unfortunately, the USPS technical staff doesn't appear to be too technical. Maybe they'll find someone who actually understands code but then again maybe not.

Thanks,

Robin
**********************************
XML:

<RateRequest USERID="************" PASSWORD="************">
<Package ID="0">
<Service>Express</Service>
<ZipOrigination>27261</ZipOrigination>
<ZipDestination>92110</ZipDestination>
<Pounds>3</Pounds>
<Ounces>8</Ounces>
<Container>None</Container>
<Size>Regular</Size>
<Machinable/>
</Package>
</RateRequest>
***************************************
Code:

<%Function SendXMLFiletoUSPS()%>
<%
Dim RateType
Dim USPSURL
Dim objSrvHTTP

RateType = "API=Rate&XML="
USPSURL = "http://testing.shippingapis.com/ShippingAPItest.dll" & "?" & RateType & strMessage & ""

Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objSrvHTTP.open "POST", USPSURL, false
objSrvHTTP.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
objSrvHTTP.send ""
strResponseMessage = objSrvHTTP.responseText
intHTTPStatusCode = objSrvHTTP.status
strHTTPStatusText = objSrvHTTP.statusText
%>
<%End Function%>Use Server.UrlEncode() on your XML content. Then try to post it. Also do not append the XML content to the URL rather append it to the Send method.Afterburn,

Thanks for responding. A post on <!-- w --><a class="postlink" href="http://www.webmasterworld.com">www.webmasterworld.com</a><!-- w --> put me in the right direction.

Here is the corrected code.

Robin
*****************

<%Function SendXMLFiletoUSPS()%>
<%

Dim RateType
Dim USPSURL
Dim objSrvHTTP

RateType = "API=Rate&XML="

USPSURL = "http://testing.shippingapis.com/ShippingAPITest.dll?"
strXML = RateType & strMessage

Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objSrvHTTP.open "POST", USPSURL, false
objSrvHTTP.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
objSrvHTTP.send (strXML)
strResponseMessage = objSrvHTTP.responseText
intHTTPStatusCode = objSrvHTTP.status
strHTTPStatusText = objSrvHTTP.statusText
%>
<%End Function%>STop opening asp tags. This causes the ASP engine to step in an out of scripting context to output plain html. It should not occur unless its like a header or something..
 
Back
Top