我有以下xml,它包含在名为Inventory4zeroone.xml的文件中:
<?xml version="1.0" encoding="UTF-8"?>
<Flexquery>
<QueryName>Ecommerce Inventory</QueryName>
<Data>
<Item>
<Web>1</Web>
<productID>8203291034586124284</productID>
<item_SID></item_SID>
<categoryID>MC</categoryID>
<title>SWOOSH RND FRT HOOD WHITE LRG</title>
<description>Great Product</description>
<price>34.5</price>
<qty>17</qty>
<image>8203291034586124284.jpg</image>
<thumb>8203291034586124284_t.jpg</thumb>
<active>1</active>
<updatedDate>3/18/2013 11:31:41 AM</updatedDate>
</Item>
<Item>
<Web>1</Web>
<productID>8203291034586124285</productID>
<item_SID></item_SID>
<categoryID>MC</categoryID>
<title>ACME RND FRT HOOD WHITE LRG</title>
<description>Great Product</description>
<price>49.2</price>
<qty>19</qty>
<image>8603291034586124284.jpg</image>
<thumb>8603291034586124284_t.jpg</thumb>
<active>1</active>
<updatedDate>3/18/2013 11:31:41 AM</updatedDate>
</Item>
</Data>
</Flexquery>
我可以直接在http://www.scrapbookcentral.co.nz/xml/inventory4zeroone.xml浏览此内容。
但是,当我尝试通过CFHTTP获取此文件时,如下所示:
<cfhttp url="http://www.scrapbookcentral.co.nz/xml/inventory4zeroone.xml"
method="GET"
resolveurl="yes">
我收到以下错误:
您可以在http://www.scrapbookcentral.co.nz/tasks/rpImportInventory.cfm
查看此情况我发现site with a solution到“无法确定文件的MIME类型”部分错误,因此我将调用更改为:
<cfhttp url="http://www.scrapbookcentral.co.nz/xml/inventory4zeroone.xml"
method="GET"
resolveurl="yes">
<cfhttpparam type="header" name="mimetype" value="application/xml" />
</cfhttp>
那不起作用。发生完全相同的错误。
所以,我读了其他网站说它可能是防火墙问题。但是,我们的系统管理员说没有防火墙问题可以访问这些文件。
所以,我目前处于亏损状态,并希望得到任何帮助。
答案 0 :(得分:2)
一定是你的网络。
尝试在http://cflive.net/运行您的代码 - 它运行正常。
我跑了这个:
<cfhttp url="http://www.scrapbookcentral.co.nz/xml/inventory4zeroone.xml" method="GET" result="myResult">
<cfhttpparam type="header" name="mimetype" value="application/xml" />
</cfhttp>
<cfdump var="#myResult#">
一切正常。我只是删除了解决方案,并且可能添加userAgent,因为某些服务器设置为不允许来自非浏览器的连接。
答案 1 :(得分:0)
我认为@Lucas是对的,这可能是一个网络问题。如果要确认这一点,请安装fiddler(http://fiddler2.com/)并将proxyServer =“computer.running.fiddler”和proxyPort =“8888”添加到cfhttp调用中。
然后,您可以比较浏览器和CF正在使用的请求标头。您可以使用composer选项卡编辑并重新运行CF所提出的请求。逐个将标题从浏览器的请求复制到CF中并重新尝试。在某些时候它会开始工作,你将找到你需要改变的标题。