2013-07-12 4 views
0

Я пытаюсь вытащить канал RSS с помощью Mule Studio. Я могу просмотреть этот канал в браузере с помощью RSS-фидера и использовать CURL, но я не могу сделать это с помощью приложения Mule. Это приложение Mule работает с другими каналами RSS, поэтому я не понимаю, почему я получаю 403 Forbidden ошибку для этого фида.Почему Mule HTTP PollingConnector возвращает 403 Запрещенная ошибка при попытке прочитать некоторые RSS-каналы

Это мой Mule XML

<http:polling-connector name="PollingHttpConnector" pollingFrequency="60000" doc:name="HTTP Polling" clientSoTimeout="10000" cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="10000" socketSoLinger="0" validateConnections="true"/> 
<flow name="mondavi" doc:name="mondavi"> 
    <http:inbound-endpoint exchange-pattern="one-way" doc:name=" " address="http://www.theaggie.org/feed/" connector-ref="PollingHttpConnector" encoding="UTF-8"/> 
    <logger message=" #[header:INBOUND:http.version] #[header:INBOUND:http.method] #[header:INBOUND:http.request] " level="INFO" category="mule.http.accesslog" doc:name="Logger"/> 
    <component class="edu.ucdavis.edustream.esb.news.rss.OrigFeedSplitter" doc:name="Java"/> 
    <foreach doc:name="For Each"> 
     <component class="edu.ucdavis.edustream.esb.news.rss.EntryReceiver" doc:name="Java"/> 
     <logger level="INFO" doc:name="Logger"/> 
     <http:outbound-endpoint exchange-pattern="request-response" host="${edus.host}" port="${edus.port}" path="api/v1/activity" method="POST" mimeType="application/json" doc:name="HTTP"/> 
    </foreach> 
</flow> 

поток Вот ответ от запроса успешного CURL, запрашивает только заголовок:

HTTP/1.1 200 OK 
Date: Fri, 12 Jul 2013 19:06:51 GMT 
Server: Apache 
Set-Cookie: PHPSESSID=l0eg8e93ihb3r65plms64l84f7; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
X-Pingback: http://www.theaggie.org/xmlrpc.php 
Last-Modified: Fri, 12 Jul 2013 03:37:00 GMT 
ETag: "556af474b6fdedb235c46e19926f69db" 
Content-Type: text/html; charset=UTF-8 

ответ

2

http://www.theaggie.org/feed/ отторгает HTTP GET, когда агент пользователя «Jakarta Commons-HttpClient/3.1 ", что и использует Mule.

 
$ curl -I -H "User-Agent: Jakarta Commons-HttpClient/3.1" http://www.theaggie.org/feed/ 
HTTP/1.1 403 Forbidden 
Date: Fri, 12 Jul 2013 19:27:20 GMT 
Server: Apache 
Status: 403 Forbidden 
Connection: Close 
Content-Type: text/html; charset=UTF-8 
+0

Спасибо! Вы знаете, как я смогу изменить User-Agent на Mule, чтобы иметь возможность получать фид? – Emm

+1

Хмм, это должно быть плохой практикой, чтобы обманывать вашего пользовательского агента ... В идеале мы должны попросить этих ребят прекратить сосать. В менее идеальном мире я могу сказать вам, что вы можете просто использовать «http: //www.theaggie.org/feed/? User-Agent = MuleESB» в качестве адреса конечной точки, и он будет работать. Но опять же, это была бы плохая практика :) –

 Смежные вопросы

  • Нет связанных вопросов^_^