Campaign Monitor API Connection Failure With CFHTTP And GZIP Compression
Posted June 2, 2009 at 9:01 AM
To manage mailing lists for clients and personal projects, I generally use Campaign Monitor. Its SOAP-based API has many different methods for subscribing, resubscribing, and unsubscribing email users to various client lists. The API interaction was great for a long time and then suddenly, a few weeks ago, I started getting "Connection Failure" on all of my ColdFusion CFHTTP requests.
| | | | | |
| | ![]() | | ||
| | | |
I have no idea what the heck was going on. I could connect to the WSDL file just fine using the browser so I couldn't figure out why it was suddenly failing with ColdFusion's CFHTTP request. After a bit of Googling, I came across a post by Dan G. Switzer, II that discussed this very topic: CFHTTP "Connection Failures" issues with Gzip. In the post, Dan discussed that the problem comes from the fact that a connection failure in CFHTTP might be caused by the use of GZIP compression on the target server (which CFHTTP cannot handle).
I checked the compression in FireBug to confirm that this was, in fact, the case:
| | | | | |
| | ![]() | | ||
| | | |
To fix this incompatibility, Dan gave a few different options. The one I ended up going with was passing in a no-compression CFHttpParam header value with my CFHTTP request:
Launch code in new window » Download code as text file »
- <!--- Post SOAP data to campaign monitor. --->
- <cfhttp
- url="......"
- method="get"
- result="objSOAPPost">
-
- <cfhttpparam
- type="header"
- name="accept-encoding"
- value="no-compression"
- />
-
- <!--- More params go here. --->
-
- </cfhttp>
Adding that CFHttpParam did the trick! Thanks Dan!
Download Code Snippet ZIP File
Post Comment | Ask Ben | Permalink | Other Searches | Print Page
Newer Post
Project HUGE: Huge In A Hurry - Get Big - Phase 2 / Week 2
Older Post
June 1st 2009 - 2nd Annual (Inter)?National Regular Expression Day!
Reader Comments
You're welcome! :)
I actually just ran across another issue that I'm getting ready to blog about. This one wasn't about GZIP, but redirect rules.
@Dan,
Awesome. We'll keep my eyes open for your post.
Here's some other things to watch out for if you're using CFHTTP to call a server which has some mod_rewrite rules:
I had the same issue. Fixed it the same way. Campaign Monitor confirmed they had turned on IIS compression to speed the transfers. More info on the compression issue here:
http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729
@Aaron,
Seems odd that they would all of a sudden change this. Although, I guess its not a problem for most people? Maybe they sent out an "update" email that I just never saw.
Hi Ben - On the CM forum, in a post about their ColdFusion API wrapper they recommend contacting you, but why don't they promote it? I am new to CM, so still learning my way around. Is there specific info on the API available?
Thanks for your help!
mp/m
@Mike,
No problem. I don't use CM that much, but if you need any help, let me know.
Thanks for the offer Ben. Just trying to see if they plan on (re-)releasing an API wrapper for CF. In the meantime I was able to get what I needed done - adding a checkbox to an existing form to sign up for the newsletter - without any additional code.
mp/m






