【问题标题】:Does ColdFusion 11 support body content for HTTP DELETE verbColdFusion 11 是否支持 HTTP DELETE 动词的正文内容
【发布时间】:2016-03-16 16:44:43
【问题描述】:

ColdFUsion 11 上的以下脚本块有 GetHttpRequestData().content 作为你好

如果我将动词更改为 DELETE,则它是空的。

所以...

  • 通过cfhttp 发出请求时,ColdFusion 是否不支持此功能?
  • 这是错误的方式吗?
  • 有解决方法吗?

代码:

cfhttp(method="POST", charset="utf-8", url="http://x/showrequest.cfm",   result="result" ) {
    cfhttpparam(name="body", type="body", value="hello");
}

writeOutput(result.filecontent);abort;

【问题讨论】:

  • 删除请求不需要正文内容 - stackoverflow.com/a/299696/1636917
  • @Miguel-F - 是的,虽然我怀疑某些 API 确实使用它。听起来 OP 可能正在使用这样的 API,并且 cfhttp 可能不会返回该值(这不会让我感到惊讶)。
  • 你可能是正确的@Leigh。由于问题缺乏细节,很难说清楚。
  • API 是 cloudflares,删除操作需要消息体,api.cloudflare.com/…
  • 你搜索过错误数据库吗?只是猜测,但我怀疑 cfhttp 不会发送带有 DELETE 请求的“正文”。由于它不是必需的,因此可能无法实现该功能。如果是这种情况,您可能需要使用其他工具,即 curl、urlconnection 等...

标签: rest coldfusion coldfusion-11 http-delete cfhttp


【解决方案1】:

解决方法是使用 java(颤抖)。我确信有帮助库可以更简洁地做到这一点,但它就在这里。

<cfscript>
var u = createObject("java", "java.net.URL").init("https://api.cloudflare.com/client/v4/zones/#site.zoneId#/purge_cache");
var req = u.openConnection();
req.setRequestMethod("DELETE");
req.setDoOutput(true);
req.setRequestProperty("Content-Type", "application/json" );
req.setRequestProperty("X-Auth-Email", "xxxxx" );
req.setRequestProperty("X-Auth-Key", "xxxx" );
var os = req.getOutputStream();

os.write(javaCast("string",'{"files":#serializeJSON(urls)#}').getBytes("UTF-8"));
os.close();
ret = req.getResponseMessage();

var i = req.getInputStream();
var br = createObject("java",   "java.io.BufferedReader").init(createObject("java", "java.io.InputStreamReader").init(i));
var sb = createObject("java", "java.lang.StringBuilder").init();

var line = br.readLine();
while(!isNull(line)){
    sb.append(line);
    line = br.readLine();
}
req.disconnect();


</cfscript>
<cfdump var="req.getResponseCode() = #req.getResponseCode()#">
<cfdump var="#ret#">
<cfdump var="#sb.toString()#">

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-10-15
  • 2012-02-09
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 2019-04-27
  • 2012-01-08
相关资源
最近更新 更多