我正尝试通过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文件似乎也无济于事。
提前致谢
答案 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文件,但不适用于较大的文件。