From 5834963fdd634537e8af9c40a10f7c350b4da810 Mon Sep 17 00:00:00 2001 From: Jiang Jining Date: Sat, 13 Mar 2021 00:47:08 +0800 Subject: [PATCH] fix: Set default request body to prevent NullPointerException --- .../processors/impl/HttpProcessor.java | 9 +++++++-- .../processors/impl/HttpProcessorTest.java | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java index 19535e78..8505be0e 100644 --- a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java +++ b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java @@ -60,8 +60,13 @@ public class HttpProcessor extends CommonBasicProcessor { } // set default mediaType - if (!"GET".equals(httpParams.method) && StringUtils.isEmpty(httpParams.mediaType)) { - if (JSONValidator.from(httpParams.body).validate()) { + if (!"GET".equals(httpParams.method)) { + // set default request body + if (StringUtils.isEmpty(httpParams.body)) { + httpParams.body = new JSONObject().toJSONString(); + omsLogger.warn("try to use default request body:{}", httpParams.body); + } + if (JSONValidator.from(httpParams.body).validate() && StringUtils.isEmpty(httpParams.mediaType)) { httpParams.mediaType = "application/json"; omsLogger.warn("try to use 'application/json' as media type"); } diff --git a/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java index 7d8ea2d6..bc938ed0 100644 --- a/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java +++ b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java @@ -41,6 +41,25 @@ class HttpProcessorTest { System.out.println(new HttpProcessor().process(TestUtils.genTaskContext(params.toJSONString()))); } + + @Test + void testPostDefaultJson() throws Exception { + String url = "https://mock.uutool.cn/4f5qfgcdahj0?test=true"; + JSONObject params = new JSONObject(); + params.put("url", url); + params.put("method", "POST"); + System.out.println(new HttpProcessor().process(TestUtils.genTaskContext(params.toJSONString()))); + } + + @Test + void testPostDefaultWithMediaType() throws Exception { + String url = "https://mock.uutool.cn/4f5qfgcdahj0?test=true"; + JSONObject params = new JSONObject(); + params.put("url", url); + params.put("method", "POST"); + params.put("mediaType", "application/json"); + System.out.println(new HttpProcessor().process(TestUtils.genTaskContext(params.toJSONString()))); + } @Test void testTimeout() throws Exception {