2013-04-17 78 views
0

我正尝试连接到外部Web服务以访问其数据库以进行某些操作。我有以下代码,但是当我运行时,它会给出一个“404 Not Found”CFE获取404找不到CF错误API

<cfscript> 
httpService = new http(); 
httpService.setMethod("Post"); 
httpService.setThrowOnError(true); 
httpService.setTimeOut(30); 
httpService.setURL("http://xxxxxxxxxxxxx.svc");//THEIR http 
httpService.setusername("MY USERNAME I HAVE BEEN GIVEN TO ACCESS THEIR web"); 
httpService.setPassword("THE PASSWORD THEY ASSIGNED ME"); 
httpService.addParam(type="body", name="Content-Type", value="text/plain"); 

result = httpService.send().getPrefix(); 
</cfscript> 

任何人都可以帮忙吗?

我也尝试设置userName和密码这样。但我不知道这是否是问题。

httpService.addParam(type="formfield", name="userName", value="MY USERNAME"); 

当我改变

httpService.setURL("httpxxxxxxxxx.svc"); 

httpService.setURL("httpxxxxxxxxx.svc/basicHttp"); 

它给 “415不支持的媒体类型” 来代替。还没有找到一个真正的来源可以帮助我解决这个问题。这些是我由外部来源提供的URL。

谢谢。

+0

确实CF有问题连接到.svc?那会是一个问题吗? –

+0

CF不会在意远程URL上的扩展名是什么。您的问题可能在其他地方 – barnyr

+0

您是否将param type = body更改为type = header?不支持的媒体类型错误可能与您的请求中的内容类型标题不会设置有关。 – barnyr

回答

0

我觉得有一个问题,下面的一行:

httpService.addParam(type="body", name="Content-Type", value="text/plain"); 

你可能想类型为“头”为每the docs。我不确定这是否会阻止404错误(这将取决于外部Web服务)。

如果不解决这个问题,我会做下一个是:

  • 安装Fiddler
  • 开始提琴手
  • 添加httpService.setProxyServer( “127.0.0.1”)httpService.setProxyPort (“8888”)
  • 重试ColdFusion页面。这些请求现在应该显示在Fiddler中。

您现在可以检查请求和响应,这可能会为您提供有关什么不起作用的线索。您还可以将请求作为一个.SAZ文件从小提琴手保存并发送给该服务的开发人员,他们可以查看该文件,并可能向您提供反馈。

+0

当我删除setThrowOnError它的工作原理,但我不知道为什么这将与它有任何关系。我希望我可以安装Fiddler,但不幸的是,这是一个公司机器,我不能安装未批准的应用程序:( –

+0

Boo到软件锁定!严重的是,我会提出请求将Fiddler放到您的允许列表中这次可能没有帮助,但将来会有所帮助。 – barnyr