我需要通过 cfhttp 模拟一个真正的 http 请求。
我正在使用 ColdFusion 获取 rss 提要,但今晚他们开始阻止我的请求并发送索引页作为响应而不是 rss 提要。
我为 cfhttp 添加了用户代理,但它没有帮助。
Opera、Firefox 和 Chrome 从同一台计算机上正确打开提要。
最佳答案
是的,谢谢。我嗅探了浏览器发送到站点的所有 HTTP header ,然后在 cfhttp 请求中模拟它们。解决办法是:
<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">