Savon:无法解析响应正文GZIP内容编码

时间:2018-10-11 17:56:06

标签: xml soap savon

我正在与Savon一起使用,并调用应该返回约会列表的服务-出于某种原因,我返回的响应无法解析。但是,当我在SOAP UI中尝试相同的完全调用时,响应看起来非常好。

这是我从savon得到的回复:

D, [2018-10-11T18:50:53.752222 #12325] DEBUG -- : HTTPI /peer POST request to webservices-cob1.cw.com (net_http)
I, [2018-10-11T18:51:45.855723 #12325]  INFO -- : SOAP response (status 200)
D, [2018-10-11T18:51:45.856068 #12325] DEBUG -- : ��]o�0࿂��b"N`,�Tlk�I�:Q6M������YlB��k�Z�6Kc�^�B!����G���gwi�)(�B�I/��^�d�B.'�����w����"<�%*��%uXߞto��B�t|K)מm�4y*_���z��j�S��hll�%�i�)!MJ�L
        .�S$���HgJ��|�s3�H3ʹi/V���6�U��U.߫E����){|���X�a�w�t{�YDj
                                                                &�B�D-W�Q��5�^!U�r��J�U�G�Յccw�.y�ESr�^{�a�u���˛r[�Bj�eLݎ�J�L�&_ٷ�`���h��~���s�˟~`_����5�"%�(M�4m��8*�9]�}z�Z�xҏ����� �]Z�L�4H;ii�4Hk���gUW�۝�|I�p@e�W-WU��R�W�H��C{�%��_�y=�7Me�z���*��e�q{�졭�����O�/����V�����]��IT���r�'s;��v|z�)�?5zX��YVU
Savon::InvalidResponseError: Unable to parse response body:
"\x1F\x8B\b\x00\x00\x00\x00\x00\x00\x00\xED\xDC]o\xDA0\x14\x06\xE0\xBF\x82\xB8\xE1b\"N`\x1F,\x82Tlk\xA7I\xED:Q6M\xBB\xF3\xC2\x11\xB5\x96\xD8YlB\xFB\xEFk\x92\x10Z\xA86Kc\x12\x91^\xA9B!\xB6\x8F\x8D\x9BG\xEF\x05\xAD\xC7gwi\xD2)(\xD7B\xC9I/\xF0\xFC^\x87d\xAC\x16B.'\xBD\xAF\xF3\x8B\xFE\xA8w\x16\x8D\xB5\xE2\x19\xC9\"<\x97\x05%*\xA3\x8E\x1D%uX\xDF\x9Eto\x8D\xC9B\xC6t|K)\xD7\x9Em\xDD4y*_\xB2\xCD\x05\xA3z\x1C\xEB\xEEj\xBDS\x8B\xFBhll\x99%\x99i\x96)!MJ\xD2L\v.\x12\xFES$\xC2\xDC\xCFHgJ\xEA\xED|\xB6s3\x97H3\xCA\xB9\x11\x05i/V\xDE\xEA\x17\xFB6\xF0\xBBU\xC1\x19\x99U.\xDF\xAB\x05E\xFE\x98\xED\xDD){|\xFC\xEB\x94\xD1X\xEAa\xC8w\x9Dt\xBD\b{\xBBYDj\v&\xDEB\xF0D-W\xE4Q\x9A\xA95\xE5^!U\xACr\xB2\xEBJ\xBBU\x9DG\x93\xD5\x85ccw\xBC.y\xA7ESr\xBD^{\xEBa\xB9u\x03\xDF\x0F\xD8\xF7\xAB\xCB\x9Br[\xFBBj\xC3eL\xDD\x8E\xED\x1FJ\x91L\xBA&_\xD9\xB7\xEC`\xAD\x1F\xB8\xA1h\xE0\a\xA3~\xE0\xF7\x83\xD7s\xDF\x0F\xCB\x9F\x17~`_\xC7\xEC\xB9\xEE\xFB5\xE6\"%\x9D(\x13M\xAF\x0E\x064m\a\x83\xEE\x9B\x87\xE38\x1F*\xE69]\x92}z\x8EZ\x95x\x9E\b\xD2\x8F\x9F\x81\xCD\x1E\xFC\xEF9\xB6\xDBv\xD4y\x12!\xE9\xE8\xDB\xFE{\xC5\xA5\xB1\x1A\x8EZTS^\x88\xF8\xB8\x8Be\xCF\xEAj3\xB7/\xE0\x06n\xE0\xE6\xCC\xED\r\xD2\r\xDC\xC0\xAD%\xDC\x90n\xE0\x06n\xEE\xDCFH7p\x03\xB7\x96pC\xBA\x81\e\xB8\xB9s{\x8Bt\x037pk\t7\xA4\e\xB8\x81\x9B3\xB7\xC1\x00\xE9\x06n\xE0\xD6\x12nH7p\x037wnC\xA4\e\xB8\x81[K\xB8!\xDD\xC0\r\xDC\xDC\xB9\xBDD\xBA\x81\e\xB8\xB5\x84\e\xD2\r\xDC\xC0\xCD\x9D\xDB+\xA4\e\xB8\x81[K\xB8!\xDD\xC0\r\xDC\xDC\xB9\xE1\xFF\xDD\xC0\r\xDC\xDA\xC2\r\xE9\x06n\xE0\xE6\xCEm\xF7G\\?\x10l\x90\x06i'(\r\x99\x06i\x90\xE6,m\xE8#\xD3 \r\xD2NZ\x1A2\r\xD2 \xCD]Z\x80L\x834H;ii\xC84Hk\x91\xB4\xFDgUW\x93\xDB\x9D\xD7|I\xFFp@e\x10\x9EW-WU\xA9\xA6R\xB0W\xC9\x0EH\x95\xFCC\x1D{\x95%\xB4\xB1_\x1E\xB6y=\e\x04\xD57\x02\aMe\xF7z\xE9\xD1\xCD*\x8E\xEDe\xD5q{\xB3\xEC\xA1\xAD\x90\xDC\xFE\xBA\xA2O\x9F/\xAE\xAB\xF6\xE6V\xF5\xF6\xE9\xD2\xEB]\xDA\xEEIT\x9D\xFF\xE9r\xDE's;\x8B\xD4v|z\x84)\xDB?\x1D5z\x00X\xCC\xDDYVU\x00\x00"

我与Savon进行的所有其他呼叫都可以正常工作,并且可以解析响应。我看到的唯一区别是,在解析过程或其他过程中,{"content-encoding"=>["gzip", "gzip"], "content-type"=>"text/xml; charset=UTF-8", "content-length"=>"714"}被添加到标题中。我从SOAP UI看到的响应中也没有此内容。

谢谢

1 个答案:

答案 0 :(得分:0)

Savon使用httpi gem进行通信。 您的服务器以某种方式创建了gzip响应,这应该没问题。

从您的日志中,我想您尚未安装“更好的” http库之一。我建议与httpclient一起使用。

您想放

httpi.adapter = :httpclient
在创建客户端之前,请在代码中

。 那应该照顾它。 Savon project on github上有关于该问题的讨论。