【问题标题】:CFHTTP returns content from wrong URLCFHTTP 从错误的 URL 返回内容
【发布时间】:2014-08-22 16:01:51
【问题描述】:

我最近将一些应用程序从 ColdFusion 8 服务器移到了运行 ColdFusion 10 的新机器上。

我的一个脚本现在出现了一些非常奇怪的行为。

我正在使用 cfhttp 从 RSS 提要中提取内容,但我从 cfhttp 返回的“FileContent”与我期望的 URL 不匹配。

我确认我使用的 URL 是有效的,并且它提供的 XML 通过了验证测试。以下测试代码应从 RSS 提要中获取 XML 并将其显示在屏幕上。我不知道它实际返回的内容是从哪里来的。

<cfset theFeedURL = "http://www.thonline.com/search/?q=&t=article&l=50&d=&d1=8/20/2014&d2=8/21/2014&s=priority&sd=desc&c[]=sports/local_sports*&f=rss&cacheBreaker=9876">
<cfhttp url="#theFeedURL#" result="MyRSS" resolveurl="yes"></cfhttp>
<cfoutput>#MyRSS.FileContent#</cfoutput>

【问题讨论】:

  • 这里要做的第一件事是启动 Wireshark 并检查原始流量以验证您的代码是否访问了正确的 URL(检查服务器 IP 地址)并且您正在获取错误的数据.这将告诉您下一步该往哪里看。
  • 我不认为问题出在我的服务器本地。我在不同网络上的不同网站上运行此测试代码并得到相同的结果
  • 您还没有证据证明您的系统正在请求正确的 URL。检查原始流量。

标签: xml coldfusion rss cfhttp


【解决方案1】:

谢谢大家的回答,但我解决了这个问题。问题出在我用来获取提要的 URL 中。

如果您查看我正在使用的查询字符串,我有几个项目中有斜线(d1、d2 和 c[] 变量)

虽然我可以按原样将该 URL 粘贴到浏览器中并获得我想要的内容,但 cfhttp 不喜欢这种方式。 我需要使用URLEncodedFormat() 将查询字符串中的所有斜杠替换为 %2F,这样就解决了问题。

【讨论】:

  • 啊,所以请求可能被重定向到主页或其他一些默认页面。感谢您发布后续信息。
【解决方案2】:

&lt;cfdump var="#MyRSS#" /&gt; 添加到您的代码中以尽可能多地查看交易。

如果问题仍然存在,请检查 CFHTTP 的 getAsBinary='never' 属性。

https://wikidocs.adobe.com/wiki/display/coldfusionen/cfhttp

【讨论】:

  • 没有提及内容类型问题。他是说他收到的内容似乎是针对与他请求的 URL 不同的 URL。比如请求 Adob​​e 主页并取回 Stack Overflow 的内容。
  • 当 CFHTTP 调用的结果被转储时,关于调用的附加数据将可用:charSet、errorDetail、fileContent、header、mimeType、responseHeader、statusCode、text。这可能会提供有用的数据,以便成功调试所描述的问题。
  • 当然。但是,以上是评论,而不是答案。 (S.O. works differently than a forum)。我知道你还不能post comments,仅供参考。
猜你喜欢
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多