内容长度已存在错误soapUI 4.5.1

15

我最近开始使用soapUI 4.5.1,对所有设置还不太熟悉。我已经设置了一些 web 请求,除了一个之外其余都正常工作。我试图发送应用程序/xml 类型的内容,但出现了如下错误:

org.apache.http.client.ClientProtocolException caused by org.apache.http.ProtocolException: Content-Length header already present.

在4.5.0版本中,同样的请求总是能够正常工作。请求内容类似于:

POST http://exampleHost.com/exampleRequest HTTP/1.1
Accept-Encoding: gzip,deflate
Accept: text/xml
Content-Type: application/xml
Content-Length: 456
Host: exampleHost.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

接下来是xml内容。

我猜测内容长度被发送两次,但我不知道在哪里,因为我没有设置过。SoapUI显示这条消息的附加HTTP头0

任何指针都将非常棒!


6
问题出在我的设置上,就像我想的一样!在全局HTTP设置中勾选“预先认证”复选框解决了这个问题 :) - idunno
现在它又停止工作了,尽管我没有改变任何东西 - 它曾经工作过一次,然后就再也不工作了,到底是怎么回事? - idunno
1
我可以通过在我的SOAP请求的“Aut”标签中将“授权类型”更改为“抢占式”来解决这个问题。[http://forum.soapui.org/viewtopic.php?t=14356] - Subhrajyoti Majumder
5个回答

17

我通过在SoapUI 4.5.1中勾选“预先认证”标记,在

首选项->HTTP设置->预先认证

解决了错误。


5

1

我在使用一个需要用户凭证的身份验证开发服务器时遇到了同样的问题,但实际上接受空白或任何其他密码。因此,我将密码留空,在soapUI 4.5.0中可以正常工作,但在你描述的4.5.1版本中失败了。但是我发现,只需在密码框中输入一些文本即可解决该问题。

不知道这是否与您的情况有关,但以防有用。


谢谢回复,但密码中仍有文本,问题仍然存在 :( - idunno

0

我在使用Soap UI pro version 4.5.1时遇到了相同的问题。

最终发现问题出在代理设置上。

解决方法:

  1. 将目标服务器添加到代理设置的排除列表中可以解决问题。即使终端点URL是localhost,也是如此。
  2. 首选项-->代理设置 --->排除
  3. 可以通过逗号分隔的值指定多个服务器

我的系统上的调研/观察结果:

  1. 奇怪的是,在同一办公室内的其他系统上可以无问题地运行相同的测试套件。必须与系统配置有关。

  2. 在Internet选项中玩弄代理设置没有效果。

  3. 对于我的请求,需要代理身份验证。但是当我启用代理设置时,会出现Http客户端协议异常和重复内容长度错误。
  4. 一旦请求被发送,我们可以从HTTP日志中找到这个问题…但我们没有配置它的选项。
  5. 一个有趣的观察结果是一个内容长度头在传入请求中,另一个内容长度头在传出请求中……虽然这不应该影响请求。

0

导致此错误的另一种方式是使用错误的密码(我被告知是错误的诚实)多次调用 Web 服务并锁定您的帐户。

一旦重置密码并解锁帐户,"org.apache.http.client.ClientProtocolException caused by org.apache.http.ProtocolException: Content-Length header already present" 异常就会消失,Web 服务调用将按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接