Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lucee Soap 400错误;在CF中工作正常。

Lucee Soap 400错误;在CF中工作正常。
EN

Stack Overflow用户
提问于 2015-03-24 16:05:34
回答 1查看 759关注 0票数 1

我正在尝试使用Lucee 4.5执行CFHTTP调用。我的主工作站上的测试代码是可以的(运行CF 10),但是当正确地复制到带有Lucee的笔记本电脑时,如果400失败了,错误的标头就会发送给。见下文

代码语言:javascript
运行
AI代码解释
复制
#XML Being Passed
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <SOAP-ENV:Body>
    <m:Authenticate xmlns:m="http://foo.com/2005/">     
      <m:userName>xxxxx</m:userName>
      <m:password>xxxxx</m:password>
    </m:Authenticate>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


#Partial Codebase; 'variable' is XML posted above
<cfhttp url="http://xxxxxxx?WSDL" method="post" result="theCFHTTP" compression="false">
            <cfhttpparam type="HEADER" name="Content-Type" value="text/xml; charset=utf-8">
            <cfhttpparam type="HEADER" name="Accept" value="application/soap+xml, application/dime, multipart/related, text/*">
            <cfhttpparam type="HEADER" name="User-Agent" value="Axis/1.1">

            <cfhttpparam type="HEADER" name="Cache-Control" value="no-cache">
            <cfhttpparam type="HEADER" name="Pragma" value="no-cache">
            <cfhttpparam type="HEADER" name="SOAPAction" value="http://foo.com/2005/Authenticate">
            <cfhttpparam type="HEADER" name="Content-Length" value="#len(soap)#">
            <cfhttpparam type="xml" name="body" value="#soap#">
        </cfhttp>

我对Lucee非常陌生,从未使用过Railo,所以如果有独特的字符集或其他需要完成的配置选项,我将非常感谢您的帮助。

编辑:进一步的测试已经确定我不能对笔记本之外的任何页面进行CFHTTP。所有外部URL都会给出400个错误的头消息。

我还添加了compression=false,这样Lucee就不会自动将GZip内容发送到请求url。

我的工作机器的返回头:

  • 字符集:utf-8
  • Header:HTTP/1.1 200 OK Cache-Control: private,max-age=0 Content-Type: text/xml;charset=utf-8 :Microsoft/8.0 X-AspNet-版本: 4.0.30319 X驱动-By: ASP.NET日期:ASP.NET日期:2015年3月25日14:58:03 GMT连接:关闭内容长度: 603
  • Mimetype:text/xml

失败机器的返回头:

  • Charset:us
  • :HTTP/1.1 400坏请求内容-Type: text/html;charset=us-ascii服务器:Microsoft/2.0日期:18,2015年3月25日15:06:18 GMT连接:关闭内容长度: 339
  • Mimetype:text/html

5月19日编辑:

在基于Fabio的响应的CFHTTP调用中,我分别测试了以下每一项调整:

  1. 我删除了内容类型的标头参数,或者
  2. 将body param从“xml”更改为“body”

这两种方法都不起作用,尽管我的错误消息已更改为400坏请求。CFHTTP调用的转储显示我发送的XML无效,尽管独立的检查验证它实际上是有效的。它在令牌身份验证调用中失败了。

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 04:55:49

我今天也遇到了同样的问题。终于,我明白了!

我使用tcpdump嗅探网络流量,看起来我们对IIS7的请求两次包含了内容类型标头,从而导致了丑陋

错误请求-无效的标头名称错误

问题在于身体参数:

代码语言:javascript
运行
AI代码解释
复制
<cfhttpparam type="xml" name="body" value="#soap#">

Lucee相应地将内容类型头设置为text/xml;utf-8.然后根据其他参数再次设置它:

代码语言:javascript
运行
AI代码解释
复制
<cfhttpparam type="HEADER" name="Content-Type" value="text/xml; charset=utf-8">

你有两个选择:

  1. 将type="xml“留给您的cfhttpparam标记,并删除显式MIME+charset param。
  2. 将type="xml“更改为type="body",并手动设置所有标头
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29245212

复制
相关文章
400错误请求什么意思_网页400错误怎么解决
A 400 Bad Request Error occurs when a request sent to the website server is incorrect or corrupt, and the server receiving the request can’t understand it. Occasionally, the problem is on the website itself, and there’s not much you can do about that. But most of the time, the problem is one you might be able to solve—maybe you typed the address wrong, or maybe your browser cache is causing problems. Here are some solutions you can try.
全栈程序员站长
2022/11/11
11.3K0
400错误请求什么意思_网页400错误怎么解决
网站错误代码400_网页400错误什么意思
看着她充满求知欲的卡姿兰大眼睛,S姐决定本期讲讲上网冲浪时,你可能遇到的错误代码解析!
全栈程序员站长
2022/11/11
2.7K0
网站错误代码400_网页400错误什么意思
接口400错误解析
今天我遇上一个让我很痛心的错误400。对程序员来说,这可能是一个最简单的错误码。因为这个相应并没有进拦截器,更没有进到Controller层。可我在解决这个问题时,质询了很多朋友不解,百度各种方案无效。苦苦耗费我大半天时间。
全栈程序员站长
2022/07/01
4.2K0
接口400错误解析
程序访问一个地址时候报400错误,浏览器访问正常怎么解决
最近凯哥在调程序的时候,发现以前好好的程序,突然不能用了。于是就本地断点,发现了如下错误:
凯哥Java
2020/01/04
1.4K0
程序访问一个地址时候报400错误,浏览器访问正常怎么解决
java 设置400错误_Java项目报400错误的原因与解决方法
请求中的语法错误。Reason-Phrase应当标志这个详细的语法错误,比如”Missing Call-ID header field”。
全栈程序员站长
2022/11/09
4K0
vue在IE下无法正常工作,Promise未定义?
用vue写了一个日历组件,在Firefox、Edge、Chrome以及360等浏览器极速模式中运行一切正常,如图:
Yiiven
2022/12/15
4.3K0
vue在IE下无法正常工作,Promise未定义?
正常的工作流程
修改文件,将它们更新的内容添加到索引中。 $ git add file1 file2 file3 你现在为commit做好了准备,你可以使用git diff命令再加上–cached参数,看看哪些文件将被提交(commit)。 (如果没有–cached参数,git diff会显示当前你所有已做的但没有加入到索引里的修改。)你也可以使用git status命令来获得当前项目的一个状况。
用户3004328
2018/09/06
7990
解决在控制层springmvc框架发出的400状态的错误
错误场景: 错误分析:   这也是我第一次遇到这个类型的异常,400响应状态代表:客户端发出的请求中携带的参数与服务器端接受的参数类型不匹配,进一步就是说我后台的实体类中数据类型为Date,而前台传递
赵小忠
2018/01/24
2K0
记一次Nginx 400错误
在一个非CDN的域名下有一个页面,需要请求CDN域名下的资源。所以在CDN的那台源站的Nginx上设置了
meteoric
2018/11/19
6K0
遇到 400、500 错误千万不要慌!
很多人都会在平时开发过程中遇到400或500异常,并且也没有走到服务端controller中,就变得有些不知所措。
程序猿DD
2021/09/03
1.2K0
nginx websocket socket.io 400 错误
https://www.cnblogs.com/pangyangqi/p/9711317.html
小贝壳
2020/03/05
1.5K0
Apache编译后无法正常工作
因为某个场景的需求,要在一个国产系统Rocky4.2(国产凝思4.2操作系统)上安装Apache,虽说此系统是基于Redhat 5.8开发的,但是发现yum安装源包管理,RPM命令倒是能用,但是底层依赖完全没有,这就尴尬了,so,只能源码编译安装了。
后场技术
2020/09/03
2.9K0
【soap】soap协议是什么
大家好,又见面了,我是你们的朋友全栈君。 一、什么是 SOAP? SOAP 指简易对象访问协议 SOAP 是一种通信协议 SOAP 用于应用程序之间的通信 SOAP 是一种用于发送消息的格式 SOAP 被设计用来通过因特网进行通信 SOAP 独立于平台 SOAP 独立于语言 SOAP 基于 XML SOAP 很简单并可扩展 SOAP 允许您绕过防火墙 SOAP 将被作为 W3C 标准来发展 二、为什么使用SOAP协议? 对于应用程序开发来说,使程序之间进行因特网通信是很重要的。 目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。 通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。 SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。 三、SOAP 构建模块 一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素: 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息 可选的 Header 元素,包含头部信息 必需的 Body 元素,包含所有的调用和响应信息 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息 所有以上的元素均被声明于针对 SOAP 封装的默认命名空间中: http://www.w3.org/2001/12/soap-envelope 以及针对 SOAP 编码和数据类型的默认命名空间: http://www.w3.org/2001/12/soap-encoding 1,语法规则 这里是一些重要的语法规则: SOAP 消息必须用 XML 来编码 SOAP 消息必须使用 SOAP Envelope 命名空间 SOAP 消息必须使用 SOAP Encoding 命名空间 SOAP 消息不能包含 DTD 引用 SOAP 消息不能包含 XML 处理指令 (1)必须使用 SOAP Envelope 必需的 SOAP 的 Envelope 元素是 SOAP 消息的根元素。它可把 XML 文档定义为 SOAP 消息。 请注意 xmlns:soap 命名空间的使用。它的值应当始终是:http://www.w3.org/2001/12/soap-envelope 并且它可把封装定义为 SOAP 封装:
全栈程序员站长
2022/09/15
1.7K0
【soap】soap协议是什么
IE访问页面400报错,其他浏览器可正常访问
背景:由于爆出Tomcat低版本内容中,存在Web Socket漏洞。因此安排Tomcat升级,本次升级到是Tomcat7.0.106。
全栈程序员站长
2022/09/05
1.1K0
IE访问页面400报错,其他浏览器可正常访问
什么是SOAP,SOAP是什么
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。
全栈程序员站长
2022/09/15
1.2K0
什么是SOAP,SOAP是什么
[解决方案] spring-mvc 400错误解决办法
简单看一下上面代码觉得似乎没有什么不对的地方,但是启动之后访问 /item/param 就会报 400 错误
星尘的一个朋友
2020/11/25
1.5K0
[解决方案] spring-mvc 400错误解决办法
[nginx]配置nginx支持websocket解决返回400错误问题
当nginx里没有配置支持webocket时 , 但是已经配置了域名 比如:ws://gofly.sopans.com/ws_visitor
唯一Chat
2021/04/23
2.9K0
webService —— soap
package soupTest; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class Main { public static void main(String[] args) { System.out.println("server is running"); String address = "http://loc
Mister24
2018/06/21
1.8K0
工作中遇到的Spark错误(持续更新)
1.java.io.IOException: No spa ce left on device 原因及解决办法:磁盘空间不足
shengjk1
2018/10/24
1.9K0
点击加载更多

相似问题

Lucee/CF -清除逗号分隔列表

30

在Lucee 5.2中cf线程标记的内部为空

10

ASIHTTPRequest 400错误请求(soap)

12

错误请求错误400 firebase,但函数工作正常

19

GuzzleHttp - 400错误异常,但卷曲工作正常

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档