private HttpEventData getHttpEventData()

in adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/converter/HttpEventConverter.java [203:245]


    private HttpEventData getHttpEventData(ServerHttpRequest request, byte[] body, Map<String, String> headers,
        String accountId, String token) {
        HttpEventData httpEventData = new HttpEventData();
        HashMap<String, String> dataHeaders = new HashMap<>();
        headers.forEach((k, v) -> {
            if (!DISCARD_FIELDS.contains(k)) {
                dataHeaders.put(k, v);
            }
        });

        Object bodyContent = new String(body);
        HashMap<String, String> temp = new HashMap<>();
        dataHeaders.forEach((k, v) -> {
            temp.put(k.toLowerCase(), v);
        });
        try {
            String contentType = temp.get("content-type");
            if (StringUtils.isNotBlank(contentType)) {
                MediaType type = MediaType.parse(contentType);
                if (type.toString().contains("application/json")) {
                    bodyContent = new Gson().fromJson((String) bodyContent, new TypeToken<Map<String, ?>>() {
                    }.getType());
                }
            }
        } catch (Exception e) {
            log.warn("GenerateEBHttpEventData failed. Http content is not a valid json format. accountId={}, token={}, content-type={}",
                accountId, token, temp.get("content-type"), e);
            throw new EventBridgeException(JSON_ATTRIBUTE_INVALID);
        }
        httpEventData.setBody(bodyContent);
        httpEventData.setHeaders(dataHeaders);
        httpEventData.setHttpMethod(request.getMethod().toString());
        httpEventData.setPath(request.getPath().pathWithinApplication().value());

        HashMap<String, String> queryParam = new HashMap<>();
        request.getQueryParams().forEach((k, v) -> {
            if (!StringUtils.equals("token", k)) {
                queryParam.put(k, v.get(0));
            }
        });
        httpEventData.setQueryString(queryParam);
        return httpEventData;
    }