【问题标题】:Calling a webservice that uses ISO-8859-1 encoding from Progress 4GL从 Progress 4GL 调用使用 ISO-8859-1 编码的 Web 服务
【发布时间】:2014-06-13 21:44:43
【问题描述】:

我正在使用progress 4Gl,我必须调用一个使用ISO-8859-1的网络服务,但在执行运行语句时我收到错误:

接收 Web 服务响应时出错:无法从 TranscoderRepository 获取“ISO-8859-1”转码器。 (11773)

并且webservice的开发者不能更改编码。

有人可以帮助我吗?

【问题讨论】:

    标签: web-services character-encoding response iso-8859-1 progress-4gl


    【解决方案1】:

    Progress 仅支持 WS-I 要求的 OpenEdge Web 服务的 UTF-8 和 UTF-16 编码

    根据this knowledgebase entry

    【讨论】:

    • 所以没有解决办法?
    • 也许你可以试试这个例子中的stackoverflow.com/questions/12222607/… - 将响应保存到光盘然后解析它。不过不是很好。
    • 我按照你说的做了,但是问题是我没有得到响应,因为RUN语句抛出了上面描述的错误
    • 使用 curl 或其他工具将完全消除 RUN 语句。您需要:创建一个请求,调用 curl,将生成的 xml 保存到文件,以您喜欢的任何方式(X-DOCUMENT、DATASET 等)解析 xml,然后处理结果。
    【解决方案2】:

    如果您确定数据是标准 ascii(ascii 值

    • 您在本地下载 web 服务的 wsdl。
    • 将本地保存的文件中的iso8859-1替换为utf-8。
    • 使用该 wsdl 而不是来自 Web 服务的那个。

    这是一种变通方法,而不是理想的解决方案。

    【讨论】:

    • 我已经这样做了,但是在运行 web 服务操作时会引发相同的错误。显然有更多的带有 iso8859-1 的 xml 我无法访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2011-02-12
    • 2011-02-23
    相关资源
    最近更新 更多