Поддерживает ли ColdFusion 11 содержимое тела для глагола HTTP DELETE?

Блок скриптов ниже на ColdFUsion 11 имеет GetHttpRequestData().content как привет

Если я изменю глагол на УДАЛИТЬ, он будет пустым.

Так...

  • ColdFusion не поддерживает это при отправке запросов через cfhttp?
  • Это неправильный путь?
  • Есть ли обходной путь?

Код:

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

writeOutput(result.filecontent);abort;

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()#">
Другие вопросы по тегам