2

我正在尝试通过 WSO2 API Manager 代理以下调用

http://api.qrserver.com/v1/create-qr-code/?data=HelloWorld&size=100x100

它返回一个二维码图像。我使用http://api.qrserver.com/v1/作为端点发布了 API ,没有问题。但是当我通过 API Manager 执行调用时,我收到以下错误:

curl -H 'Authorization:Bearer 7q6W4LteX9idveFWbSa_oaGPhVsa' 'http://ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com:8280/qrcode/1.0.0/create-qr-code/?data=HelloWorld&size=100x100'

<Exception>Unexpected response received. HTTP response code : 200 HTTP status : OK exception : com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0x89 (at char #1, byte #-1)</Exception>

直接执行调用时,响应标头对我来说似乎很好(正确设置了 mime 类型 image/png),但是 WSO2 API 代理拒绝响应......我做错了什么?使用响应 mediaType="image/png" 设置 wadl 文件似乎也无济于事。

提前致谢

4

2 回答 2

0

此问题是由于默认情况下 API 管理器的 axis2.xml 中没有匹配的消息生成器和格式化程序。请将以下参数添加到axis2.xml。

<messageBuilder contentType=".*" class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
<messageFormatter contentType=".*" class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>

谢谢。桑吉瓦。

于 2013-03-27T14:38:09.753 回答
0

我在 wso2 esb 中有类似的问题。似乎响应适用于短 xml 文件,但不适用于大文件。

于 2015-01-05T22:50:48.300 回答