Real SQS throws `There should be at least one SendMessageBatchRequestEntry in the request. (Service: AmazonSQS; Status Code: 400; Error Code: AWS.SimpleQueueService.EmptyBatchRequest;` when there is a send batch of zero size.

This would be useful to mimic inside localstack in order to find these bugs earlier.
return response
        _fire_event(req_data, response)
        
        if action == 'GetQueueAttributes':
            content_str = _add_queue_attributes(path, req_data, content_str, headers)
        
        if action in ('CreateQueue', 'GetQueueUrl', 'ListQueues', 'GetQueueAttributes'):
            if config.USE_SSL and '<QueueUrl>http://' in content_str:
                
                content_str = re.sub(r'<QueueUrl>\s*http://', r'<QueueUrl>https://', content_str)
            
            external_port = SQS_PORT_EXTERNAL or get_external_port(headers, request_handler)
            content_str = re.sub(r'<QueueUrl>\s*([a-z]+)://[^<]*:([0-9]+)/([^<]*)\s*</QueueUrl>',
                                 r'<QueueUrl>\1://%s:%s/\3</QueueUrl>' % (HOSTNAME_EXTERNAL, external_port),
                                 content_str)
            
            content_str = re.sub(r'<([a-zA-Z0-9]+)>\s*arn:aws:sqs:elasticmq:([^<]+)</([a-zA-Z0-9]+)>',
                                 r'<\1>arn:aws:sqs:%s:\2</\3>' % region_name, content_str)
            if action == 'CreateQueue':
                queue_url = re.match(r'.*<QueueUrl>(.*)</QueueUrl>', content_str, re.DOTALL).group(1)
                _set_queue_attributes(queue_url, req_data)
        
        if action in ('SendMessage', 'SendMessageBatch'):
            _process_sent_message(path, req_data, headers)
        if content_str_original != content_str:
            
            response.headers['content-length'] = len(content_str)
            return requests_response(content_str, headers=response.headers, status_code=response.status_code)
    @classmethod
    def get_message_attributes_md5(cls, req_data):