如何在HPCC ECL中发起REST POST请求?
在HPCC中发起REST POST请求的实现示例
方式1:通过EclWatch自带的REST API发起POST请求(以提交ECL作业为例)
HPCC的EclWatch提供了完整的REST API集合,可通过POST请求完成集群操作,比如提交ECL作业。以下是用curl发起请求的示例:
curl -X POST \ http://<你的HPCC集群IP>:8010/WsWorkunits/workunit \ -H 'Content-Type: application/json' \ -d '{ "Workunit": { "Name": "SamplePOSTJob", "ECL": "OUTPUT(''Hello from POST Request'');", "Priority": 2 } }'
- 替换
<你的HPCC集群IP>为实际集群地址,端口默认8010(若集群配置修改过需对应调整) - 请求体为JSON格式,需指定作业名称、待执行的ECL代码及作业优先级
方式2:在ECL代码中发起外部REST POST请求
如果需要在ECL业务逻辑中调用外部REST服务的POST接口,可使用HPCC内置的HTTPClient模块,示例代码如下:
IMPORT HTTPClient; // 配置请求参数 target_url := 'https://your-api-endpoint.com/submit'; request_headers := {'Content-Type: application/json', 'Authorization: Bearer your-auth-token'}; request_body := '{"id": 123, "content": "HPCC POST Test"}'; // 发送POST请求并获取响应 api_response := HTTPClient.Post(target_url, request_body, request_headers); // 输出响应结果 OUTPUT(api_response, NAMED('API_Response'));
- 替换
target_url为实际的外部API地址 request_headers中可添加认证、内容类型等必要头信息request_body需根据目标API的要求构造对应的JSON(或其他格式)字符串
注意事项
- 确保HPCC集群与目标服务之间网络连通,若有防火墙需开放对应端口
- 调用HPCC自身API时,需确认当前用户拥有对应操作权限,必要时在请求中携带认证Cookie或Token
- ECL中使用
HTTPClient需要集群配置允许外部网络访问,若出现调用失败可联系集群管理员检查配置
内容的提问来源于stack exchange,提问作者Vipin Katara
相关产品推荐
相关产品推荐

