通过插座做HTTP请求时,我会经历奇怪的行为,这里的请求:

POST https://example.com:443/service/XMLSelect HTTP/1.1
Content-Length: 10926
Host: example.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)
Authorization: Basic XXX
SOAPAction: http://example.com/SubmitXml

后来,我的请求带有给定的内容长度。之后,我收到类似的东西:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 30 Mar 2010 06:13:52 GMT

因此,这里的一切似乎都很好。我从网络流中阅读了所有内容,并成功地收到了响应。但是我正在对开关进行投票的插座,它的模式如下:

write ( i write headers and request here )
read ( after headers sent i begin to receive response )
write ( STRANGE BEHAVIOUR HERE. WHY? here i send nothing really )
read ( here it switches to read back again )

最后两个步骤可以重复几次。因此,我想问插座模式更改的线索是什么?在这种情况下,这不是一个大问题,但是当我在请求中使用GZIP压缩时(不知道它是如何相关的),并要求服务器像这样向我发送gzpipped响应:

POST https://example.com:443/service/XMLSelect HTTP/1.1
Content-Length: 1076
Accept-Encoding: gzip
Content-Encoding: gzip
Host: example.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)
Authorization: Basic XXX
SOAPAction: http://example.com/SubmitXml

我收到这样的答复:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Encoding: gzip
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 30 Mar 2010 07:26:33 GMT

2000
�

我收到了一个大小和GZIP标头,一切都很好。这就是我可怜的小插座正在发生的事情:同时

write ( i write headers and request here )
read ( after headers sent i begin to receive response )
write ( STRANGE BEHAVIOUR HERE. And it finally sits here forever waiting for me to send something! But if i refer to HTTP I don't have to send anything more! )

它可以与什么相关?它要我发送什么?是远程Web服务器的问题还是我错过了什么?

PS所有实际的服务参考和登录/密码替换为假:)

有帮助吗?

解决方案

在InfoPath中,公式是:

number(substring(YourField; 6; 4)) - (number(substring(YourField; 6; 4)) mod 10) + 10
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top