2010-05-31 20 views
7

Necesito emular una solicitud http real a través de cfhttp. que estaba recibiendo alimentación RSS con ColdFusion, pero esta noche empezaron a bloquear mi solicitud y enviar una página de índice en respuesta en lugar de RSS fead.¿Cómo emular una solicitud http real a través de cfhttp?

que añade agente de usuario para cfhttp, pero no resuelve el problema.

Opera, Firefox y Chrome de alimentación abierta correctamente desde el mismo ordenador.

Respuesta

6

Sí, gracias. Intuí todos los encabezados HTTP que el navegador envía al sitio y luego los emulé en la solicitud cfhttp. La solución es:

<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"> 

4

yo supongo que el sitio con el feed RSS está oliendo el agente de usuario detuvo y la CFHTTP uno no se pone a uno que el sitio está utilizando. Utilice un Proxy Sniffer HTTP (es decir, Charles HTTP Proxy) para registrar la solicitud HTTP de un navegador que muestra la fuente RSS correctamente, luego intente usar CFHTTP con la misma cadena de agente de usuario que una solicitud exitosa.

Si aún no funciona, utilice los atributos 'proxyport' y 'proxyserver' de CFHTTP para ejecutar la solicitud de ColdFusion a través de su sniffer HTTP y asegúrese de que el agente de usuario se está configurando correctamente y compare con un funcionamiento solicitud.

+0

También vale la pena otras cabeceras, no sólo de agente de usuario. (Tal vez el servidor remoto está buscando una galleta o cabeceras de aceptación *.) –

+0

También puede intentar usar el proxy en otro servidor, en caso de que estén bloqueando por IP. –

Cuestiones relacionadas