从Deluge向Catalyst发送数据时请求体为空的问题求助
问题描述
我尝试使用以下Deluge代码片段调用我的Catalyst Functions API:
inputdata = map(); inputdata.put("Key","value"); app_response = invokeurl [ url :"my_catalyst_function_url" type :POST parameters: inputdata.toString() ]; info app_response; return "";
但我一直从API请求中得到空请求体,请问有人能帮我解决这个问题吗?
解决方案
你的问题出在请求体的传递方式和请求头设置上:
- Deluge的
invokeurl中,parameters参数主要用于传递URL查询参数或表单数据,而非JSON请求体 - 未指定
Content-Type: application/json请求头,后端无法正确识别请求体格式
修正后的代码如下:
inputdata = map(); inputdata.put("Key","value"); app_response = invokeurl [ url :"my_catalyst_function_url" type :POST headers: {"Content-Type": "application/json"} body: inputdata.toJSONString() ]; info app_response; return "";
关键修改点:
- 新增
headers参数,指定Content-Type为application/json,告诉后端请求体是JSON格式 - 将
parameters替换为body参数,使用toJSONString()方法把map转换成标准JSON字符串,作为请求体传递
这样后端就能正确解析到你的请求体数据了。
内容的提问来源于stack exchange,提问作者Vasanth Kumar
相关产品推荐
相关产品推荐

