WSO2微集成器REST API发布到APIM后调用报错:无效请求行
问题解决:APIM调用MI发布的API报101500错误
问题现象
按官方教程创建REST API并从Micro Integrator(MI)发布到API Manager(APIM)后,调用APIM的API时收到响应:
{"code":"101500","type":"Status report","message":"Runtime Error","description":"Error in Sender"}
Micro Integrator端核心错误日志:
ERROR {SourceHandler} - HttpException occurred org.apache.http.ProtocolException: Invalid request line: [0x16][0x17][0x18][0x19]├ä[0x1b][0x1c][0x1d]├Ç[0x1f][0x20]csq┬Ż├Ś!┬╝>├Ť┬é├▒[0x2c]├ż!1├ë┬üMc:2U┬ŽV├Ěj6┬ŐaK┬ź[0x40][0x41][0x42]T├Ç$├Ç([0x48]=├Ç&├Ç*[0x4e]k[0x50]j├Ç
核心原因
该错误由通信协议不匹配导致:APIM与MI之间使用了不一致的HTTP/HTTPS协议,比如APIM通过HTTPS发送请求到MI的HTTP端口,或反之。SSL加密流量被当作普通HTTP请求解析,就会出现乱码请求行与解析失败。
修复步骤
- 核对端点协议与MI端口配置
- 在APIM中打开发布的API,检查生产/沙箱端点的协议前缀:
- 若MI启用HTTP端口(默认8290),端点必须为
http://<MI_HOST>:8290/... - 若MI启用HTTPS端口(默认8253),端点必须为
https://<MI_HOST>:8253/...
- 若MI启用HTTP端口(默认8290),端点必须为
- 检查MI的
deployment.toml配置,确认端口启用状态:# HTTP端口配置 [transport.http] listener.port = 8290 # HTTPS端口配置 [transport.https] listener.port = 8253
- 在APIM中打开发布的API,检查生产/沙箱端点的协议前缀:
- 验证HTTPS通信的证书信任
如果使用HTTPS,需确保APIM信任MI的服务器证书:将MI的证书导入APIM的<APIM_HOME>/repository/resources/security/client-truststore.jks信任库,避免证书验证失败。 - 跳过APIM直接测试MI服务
用curl或Postman直接调用MI的API,确认MI自身服务正常:
若直接调用正常,说明问题完全出在APIM与MI的通信配置上,重点排查端点协议和网络路由。curl http://<MI_HOST>:8290/<API_CONTEXT>/<API_RESOURCE> - 检查网络与路由
确认APIM网关能访问MI的对应端口,无防火墙、代理或端口转发导致的协议混淆。
内容的提问来源于stack exchange,提问作者BousaCZ
相关产品推荐
相关产品推荐

