Between 8:00 - 9:00 am ET on 10/25 we need to take our site down to make updates. We recommend logging out before 8:00am ET and not using your account during this time. Thank you for your patience while we make these important updates.

400 error (with ASP code)

Participant

400 error (with ASP code)

Hi, 

 

I'm try to POST to https://api.constantcontact.com/ws/customers/############/contacts with the basic authentication. I'm programming ASP and I'm using the Microsoft.XMLHTTP with MSXML2.DOMDocument to load the xml and I am getting back 400 error.

 

Here is the code: 

 

serverUrl = "https://api.constantcontact.com/ws/customers/############/contacts"

set mrequest = server.CreateObject("Microsoft.XMLHTTP")
set xmlin = server.CreateObject("MSXML2.DOMDocument")
username = "############"
password = "############"
auth = "ODUwM2U1Y2MtNDdlYS00YmVhLTg1NTYtMzJkYWMxMWQxMzg2JW1heG1lbG9uaTpDb25zdGFudC4xMjM0"

 

txt = "<entry xmlns=" & chr(34) & "http://www.w3.org/2005/Atom" & chr(34) & ">" & vbcrlf

 

txt = txt & " <title type=" & chr(34) & "text" & chr(34) & "> </title>" & vbcrlf

 

txt = txt & " <updated>" & year(date()) & "-" & month(date()) & "-" & day(date()) & "T14:21:06.407Z</updated>" & vbcrlf

 

txt = txt & " <author>Max</author>" & vbcrlf

 

txt = txt & " <id>data:,none</id>" & vbcrlf

 

txt = txt & " <summary type=" & chr(34) & "text" & chr(34) & ">Contact</summary>" & vbcrlf

 

txt = txt & " <content type=" & chr(34) & "application/vnd.ctct+xml" & chr(34) & ">" & vbcrlf

 

txt = txt & " <Contact xmlns=" & chr(34) & "http://ws.constantcontact.com/ns/1.0/" & chr(34) & ">" & vbcrlf

 

txt = txt & " <EmailAddress>new_email@email.com</EmailAddress>" & vbcrlf

 

txt = txt & " <FirstName>First</FirstName>" & vbcrlf

 

txt = txt & " <LastName>Last</LastName>" & vbcrlf

 

txt = txt & " <OptInSource>ACTION_BY_CONTACT</OptInSource>" & vbcrlf

 

txt = txt & " <ContactLists>" & vbcrlf

 

txt = txt & " <ContactList id=" & chr(34) & "http://api.constantcontact.com/ws/customers/############/lists/1" &

chr(34) & " />" & vbcrlf

 

txt = txt & " </ContactLists>" & vbcrlf

 

txt = txt & " </Contact>" & vbcrlf

 

txt = txt & " </content>" & vbcrlf

 

txt = txt & "</entry>" & vbcrlf


xmlin.validateOnParse = true

result = xmlin.loadXML(txt)

Response.Write result & "<br>"

strRequest = xmlin.xml
Response.Write strRequest & "<br><br><br>"

 

if xmlin.parseError.errorcode <> 0 then
     Response.Write "<script>alert('CANCELLED.\n\n" & "An error occurred (" & xmlin.parseError.errorcode & ") during the validation of xml file a node level " & replace(xmlin.parseError.srcText, chr(34), "") & "');</script>"
else
     mrequest.open "POST", serverUrl, false
     mrequest.setRequestHeader "Content-Type", "application/atom+xml;type=entry"
     mrequest.setRequestHeader "Authorization", "Basic " & auth
     mrequest.send "xmlin=" & xmlin.xml

     if mrequest.Status = 200 then ' successful
          strResponse = mrequest.responseText
          Response.Write strResponse
     else ' failure
          Response.Write "<br>Error code received from server: " & mrequest.Status
     end if

end if

 

 

 

Thank you for your help!

 

Max

3 REPLIES 3
Employee

Hi,

 

Could you please include the XML you are POSTing to our server?

 

Thanks,

Andrew Weber
Associate Product Manager for EventSpot

Sure, here it is:

 

<entry xmlns="http://www.w3.org/2005/Atom">
<title type="text"> </title>
<updated>2011-12-20T14:21:06.407Z</updated>
<author>UnitedShades.com</author>
<id>data:,none</id>
<summary type="text">Contact</summary>
<content type="application/vnd.ctct+xml">
<Contact xmlns="http://ws.constantcontact.com/ns/1.0/">
<EmailAddress>email@email.com</EmailAddress>
<FirstName>First</FirstName>
<LastName>Last</LastName>
<OptInSource>ACTION_BY_CONTACT</OptInSource>
<ContactLists>
<ContactList id="http://api.constantcontact.com/ws/customers/maxmeloni/lists/1" />
</ContactLists>
</Contact>
</content>
</entry>

 

Hey,

 

I tested your XML with my rest client and I received a 201.  Something must be changing somewhere in your code somehow.  I am not familiar with ASP but I will try to replicate it in Visual Studio this week.

Ryan Davis
Quality Engineer
Developer Portal

View API documentation, code samples, get your API key.

Visit Page