ruanwenjun commented on code in PR #16413:
URL: 
https://github.com/apache/dolphinscheduler/pull/16413#discussion_r1703480190


##########
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java:
##########
@@ -35,53 +39,148 @@
 
 public class OkHttpUtils {
 
-    private static final OkHttpClient CLIENT = new OkHttpClient.Builder()
-            .connectTimeout(5, TimeUnit.MINUTES) // connect timeout
-            .writeTimeout(5, TimeUnit.MINUTES) // write timeout
-            .readTimeout(5, TimeUnit.MINUTES)
-            .build();
-
-    public static @NonNull String get(@NonNull String url,
-                                      @Nullable Map<String, String> 
httpHeaders,
-                                      @Nullable Map<String, Object> 
requestParams) throws IOException {
+    private static OkHttpClient CLIENT = new OkHttpClient();
+
+    /**
+     * http get request
+     * @param connectTimeout connect timeout in milliseconds
+     * @param writeTimeout write timeout in milliseconds
+     * @param readTimeout read timeout in milliseconds
+     * @return OkHttpResponse
+     * @throws RuntimeException
+     */
+    public static @NonNull OkHttpResponse get(@NonNull String url,
+                                              @Nullable OkHttpRequestHeaders 
okHttpRequestHeaders,
+                                              @Nullable Map<String, Object> 
requestParams,
+                                              int connectTimeout,
+                                              int writeTimeout,
+                                              int readTimeout) throws 
IOException {
+        CLIENT.newBuilder()
+                .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS)
+                .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)
+                .readTimeout(readTimeout, TimeUnit.MILLISECONDS)
+                .build();
         String finalUrl = addUrlParams(requestParams, url);
         Request.Builder requestBuilder = new Request.Builder().url(finalUrl);
-        addHeader(httpHeaders, requestBuilder);
+        addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder);
         Request request = requestBuilder.build();
         try (Response response = CLIENT.newCall(request).execute()) {
-            return getResponseBody(response);
+            return new OkHttpResponse(response.code(), 
getResponseBody(response));
+        } catch (Exception e) {
+            throw new RuntimeException(String.format("Get request execute 
failed, url: %s", url), e);

Review Comment:
   You need to use the new created client.
   ```
   CLIENT.newBuilder()
                    .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS)
                    .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)
                    .readTimeout(readTimeout, TimeUnit.MILLISECONDS)
                    .build();
   ```



##########
dolphinscheduler-standalone-server/src/main/resources/logback-spring.xml:
##########
@@ -76,6 +76,7 @@
                 <appender-ref ref="STDOUT"/>
             </then>
         </if>
+        <appender-ref ref="STDOUT"/>

Review Comment:
   ```suggestion
   ```



##########
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java:
##########
@@ -35,53 +39,148 @@
 
 public class OkHttpUtils {
 
-    private static final OkHttpClient CLIENT = new OkHttpClient.Builder()
-            .connectTimeout(5, TimeUnit.MINUTES) // connect timeout
-            .writeTimeout(5, TimeUnit.MINUTES) // write timeout
-            .readTimeout(5, TimeUnit.MINUTES)
-            .build();
-
-    public static @NonNull String get(@NonNull String url,
-                                      @Nullable Map<String, String> 
httpHeaders,
-                                      @Nullable Map<String, Object> 
requestParams) throws IOException {
+    private static OkHttpClient CLIENT = new OkHttpClient();
+
+    /**
+     * http get request
+     * @param connectTimeout connect timeout in milliseconds
+     * @param writeTimeout write timeout in milliseconds
+     * @param readTimeout read timeout in milliseconds
+     * @return OkHttpResponse
+     * @throws RuntimeException
+     */
+    public static @NonNull OkHttpResponse get(@NonNull String url,
+                                              @Nullable OkHttpRequestHeaders 
okHttpRequestHeaders,
+                                              @Nullable Map<String, Object> 
requestParams,
+                                              int connectTimeout,
+                                              int writeTimeout,
+                                              int readTimeout) throws 
IOException {
+        CLIENT.newBuilder()
+                .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS)
+                .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)
+                .readTimeout(readTimeout, TimeUnit.MILLISECONDS)
+                .build();
         String finalUrl = addUrlParams(requestParams, url);
         Request.Builder requestBuilder = new Request.Builder().url(finalUrl);
-        addHeader(httpHeaders, requestBuilder);
+        addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder);
         Request request = requestBuilder.build();
         try (Response response = CLIENT.newCall(request).execute()) {
-            return getResponseBody(response);
+            return new OkHttpResponse(response.code(), 
getResponseBody(response));
+        } catch (Exception e) {
+            throw new RuntimeException(String.format("Get request execute 
failed, url: %s", url), e);
         }
     }
 
-    public static @NonNull String post(@NonNull String url,
-                                       @Nullable Map<String, String> 
httpHeaders,
-                                       @Nullable Map<String, Object> 
requestParamsMap,
-                                       @Nullable Map<String, Object> 
requestBodyMap) throws IOException {
+    /**
+     * http post request
+     * @param connectTimeout connect timeout in milliseconds
+     * @param writeTimeout write timeout in milliseconds
+     * @param readTimeout read timeout in milliseconds
+     * @return OkHttpResponse
+     * @throws RuntimeException
+     */
+    public static @NonNull OkHttpResponse post(@NonNull String url,
+                                               @Nullable OkHttpRequestHeaders 
okHttpRequestHeaders,
+                                               @Nullable Map<String, Object> 
requestParamsMap,
+                                               @Nullable Map<String, Object> 
requestBodyMap,
+                                               int connectTimeout,
+                                               int writeTimeout,
+                                               int readTimeout) throws 
IOException {
+        CLIENT.newBuilder()
+                .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS)
+                .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)
+                .readTimeout(readTimeout, TimeUnit.MILLISECONDS)
+                .build();
         String finalUrl = addUrlParams(requestParamsMap, url);

Review Comment:
   Use FormBody is better than directly add the params to url.
   https://square.github.io/okhttp/recipes/#__tabbed_7_2



##########
dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParameters.java:
##########
@@ -66,83 +56,10 @@ public class HttpParameters extends AbstractParameters {
      */
     private int connectTimeout;
 
-    /**
-     * Socket Timeout
-     * Unit: ms
-     */
-    private int socketTimeout;
-
     @Override
     public boolean checkParameters() {
-        return StringUtils.isNotEmpty(url);
-    }
-
-    @Override
-    public List<ResourceInfo> getResourceFilesList() {
-        return new ArrayList<>();
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-
-    public HttpMethod getHttpMethod() {
-        return httpMethod;
-    }
-
-    public void setHttpMethod(HttpMethod httpMethod) {
-        this.httpMethod = httpMethod;
-    }
-
-    public List<HttpProperty> getHttpParams() {
-        return httpParams;
-    }
-
-    public void setHttpParams(List<HttpProperty> httpParams) {
-        this.httpParams = httpParams;
-    }
-
-    public HttpCheckCondition getHttpCheckCondition() {
-        return httpCheckCondition;
-    }
-
-    public void setHttpCheckCondition(HttpCheckCondition httpCheckCondition) {
-        this.httpCheckCondition = httpCheckCondition;
-    }
-
-    public String getCondition() {
-        return condition;
+        return StringUtils.isNotEmpty(url) && httpRequestMethod != null
+                && connectTimeout > 0;

Review Comment:
   Don't need to check connect timeout here, since you will use default value.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to