### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

IaC = CDK.

Attempting to connect an API-GW endpoint directly to EventBridge.

```
      const awsIntegration = new apigateway.AwsIntegration({
      service: 'events',
      action: 'PutEvents',
      integrationHttpMethod: 'POST',
      options: {
        credentialsRole: role,
        requestTemplates: {
          'application/json': requestTemplate,
        },
        passthroughBehavior: apigateway.PassthroughBehavior.NEVER,
        integrationResponses: [
          successResponse,
          serverErrorResponse,
          clientErrorResponse,
        ],
      },
    });
```

Receiving response:

```
    {
      statusCode: 400,
      data: {
        Type: 'User',
        message: `Error invoking integration for API Gateway ID '1z7ky5zzcb': API Gateway AWS integration action URI "arn:aws:apigateway:ap-southeast-2:events:action/PutEvents", method "GET" not yet implemented`,
        __type: 'InvalidRequest'
      }
    }
```

Similar to bug reported:

* https://github.com/localstack/localstack/issues/5508

### Expected Behavior

* 200 response
* Event created in relevant Eventbus

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

docker run localstack/localstack

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

Calling the API endpoint using axios from jest tests.

### Environment

```markdown
- OS: MacOS
- LocalStack: latest
```


### Anything else?

_No response_
body_bytes = to_bytes(to_str(result_body or ""))
                if parsed_result.get("isBase64Encoded", False):
                    body_bytes = base64.b64decode(body_bytes)
                response._content = body_bytes
        except Exception as e:
            LOG.warning("Couldn't set Lambda response content: %s", e)
            response._content = "{}"
        response.multi_value_headers = parsed_result.get("multiValueHeaders") or {}
        return response
    @staticmethod
    def fix_proxy_path_params(path_params):
        proxy_path_param_value = path_params.get("proxy+")
        if not proxy_path_param_value:
            return
        del path_params["proxy+"]
        path_params["proxy"] = proxy_path_param_value
    @classmethod
    def construct_invocation_event(
        cls, method, path, headers, data, query_string_params=None, is_base64_encoded=False
    ):
        query_string_params = query_string_params or parse_request_data(method, path, "")
        single_value_query_string_params = {
            k: v[-1] if isinstance(v, list) else v for k, v in query_string_params.items()
        }
        
        headers = canonicalize_headers(headers)
        return {
            "path": path,
            "headers": dict(headers),
            "multiValueHeaders": multi_value_dict_for_list(headers),