Search code examples
coldfusionhttpwebrequesthttprequestcfhttp

How to emulate a real http request via cfhttp?


I need to emulate a real http request via cfhttp. I was getting rss feed with ColdFusion, but tonight they started to block my request and send an index page in response instead of rss fead.

I added useragent for cfhttp, but it doesn't help.

Opera, Firefox and Chrome open feed correctly from the same computer.


Solution

  • Yep, thanks. I sniffed all HTTP headers which browser sends to the site and then emulated them in cfhttp request. The solution is:

    <cfhttp url="http://example.com/feed" 
    useragent="Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.7 (KHTML, like Gecko) Chrome/5.0.391.0 Safari/533.7"
    result="httpresult"
    redirect="false"
    >
    <cfhttpparam type="header" name="HTTP_REFERER" value="http://example.com/feed/" >
    <cfhttpparam type="header" name="Accept-Encoding" value="gzip,deflate,sdch" >
    <cfhttpparam type="header" name="Proxy-Connection" value="keep-alive" >
    <cfhttpparam type="header" name="Accept" value="application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5">
    <cfhttpparam type="header" name="Accept-Language" value="en-US,en;q=0.8">
    <cfhttpparam type="header" name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.3">
    <cfhttpparam type="cookie" name="some-cookie" value="1">