WSO2 API Manager - 使用非XML响应发布API

时间:2013-02-13 12:58:47

标签: rest wso2 wso2-am

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

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

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

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类型图像/ png已正确设置),但WSO2 API代理拒绝响应...我做错了什么?设置响应mediaType =“image / png”的wadl文件似乎也无济于事。

提前致谢

2 个答案:

答案 0 :(得分:0)

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

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

感谢。 Sanjeewa。

答案 1 :(得分:0)

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