阿里云OpenAPI 用户调用物联网平台的接口: InvokeThingService, 报错怎么解决?报错:414 Request-URI Too Large
接口文档:https://help.aliyun.com/document_detail/69584.html?spm=a2c4g.69893.0.i2#reference-snk-mrz-wdb
com.aliyun.teautil.models.TeaUtilException: Error: convert to JSON, response is:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
at com.aliyun.teautil.Common.readAsJSON(Common.java:214)
at com.aliyun.teaopenapi.Client.doRequest(Client.java:696)
at com.aliyun.teaopenapi.Client.callApi(Client.java:904)
at com.aliyun.iot20180120.Client.invokeThingServiceWithOptions(Client.java:6858)
at com.aliyun.iot20180120.Client.invokeThingService(Client.java:6863)
at com.sto.cloud.device.center.manage.external.iot.impl.IotThingServiceImpl.asynInvokeThingService(IotThingServiceImpl.java:44)
at com.sto.cloud.device.center.controller.api.DeviceIotController.sendAsynThingService$original$xIA2keWj(DeviceIotController.java:36)
at com.sto.cloud.device.center.controller.api.DeviceIotController.sendAsynThingService$original$xIA2keWj$accessor$Fq4VvKRa(DeviceIotController.java)
at com.sto.cloud.device.center.controller.api.DeviceIotController$auxiliary$jx4p8IJD.call(Unknown Source)
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:94)
at com.sto.cloud.device.center.controller.api.DeviceIotController.sendAsynThingService(DeviceIotController.java)
at sun.reflect.GeneratedMethodAccessor840.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:807)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1061)
at org.springframework.web.servlet.DispatcherServlet.
这个错误通常是由于请求的URL长度过长导致的,HTTP协议规定URL长度不能超过一定的限制,一般为2KB或4KB。这种情况下,您可以尝试以下解决方法:
1.使用POST请求代替GET请求,将请求参数放到请求体中,避免URL过长。
2.缩短请求URL,可以采用缩短网址等方式来实现。
3.将请求参数进行压缩,可以采用Gzip等压缩方式来减小请求体大小。
4.将请求参数进行分片,将请求分为多个小的请求,分别发送。
可以考虑以下几点:
这个报错是因为url太长了,1:找物联网的同学提需求。或者 2:点亮这里
把queries.put都改成body.put 此回答整理自钉群“OpenAPI 开发者门户 - 值班服务群2群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。