我正在尝试连接到需要基本身份验证的第三方供应商。我基本上需要下载html / js / css并查看我网站上的内容。我已经可以使用下面的代码连接到该站点。问题是下面的内容引用了相对于其他域的js和css,并且还需要自己进行基本身份验证。我已经尝试将'resolveUrl'设置为true,这似乎是正确的步骤,但我无法通过基本身份验证块。我很感谢能得到的所有帮助。
<cfscript>
httpService = new http();
httpService.setURL("https://example.com");
httpService.setMethod("GET");
httpService.setUsername("someusername");
httpService.setPassword("somepassword");
httpService.setResolveUrl(true);
prefix = httpService.send().getPrefix();
fileContent = prefix.fileContent;
writeOutput(fileContent);
</cfscript>
答案 0 :(得分:0)
ResolveURL是否按预期执行?你的意图是什么?您是否想从文档中收集网址,以便知道从何处收集文件?
有很多关于将文本中的链接转换为超链接的主题。您可以使用ReMatch()
轻松调整并收集数组。
你甚至可以使用Adobe的例子:
result = REMatch("https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?", cfhttp.filecontent);
我还没有对此进行测试,但我觉得这种改变可能有效
result = REMatch("https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\.js|\.css.|\.other|\.ext|\.you|\.wnt|\.hre)(\?\S+)?)?)?", cfhttp.filecontent);
或类似
的简单result = REMatch("http[s]?://([^\s"">])*(\.js|\.css.|\.other|\.ext|\.you|\.wnt|\.hre)([^\s"">])*", cfhttp.filecontent);
您必须在.
的扩展名前加\
作为前缀,因为.
是正则表达式中的特殊字符(它是一个通配符,表示任何字符)
Result返回请求中每个匹配项的数组。您可以使用它,以便它只过滤到以某些扩展名结尾的文件。
获得结果数组后,我会进行一些处理,以确保我没有任何重复的网址,然后在数组上使用cfloop并输入内容。
一个基本的蜘蛛:)。