import requests
import random
import time

# Endpoint URL
url = 'http://127.0.0.1:5000/search'

# Function to send rapid requests
def send_requests(num_requests):
    for i in range(num_requests):
        # Generate a random phone number (assuming format needed by your API)
        phone_number = ''.join(random.choices('0123456789', k=10))  # Example: Generate a 10-digit number

        # Data payload for the request
        data = {
            'phone_number': phone_number,
            'ip': '127.0.0.1'  # Example IP (replace with appropriate value)
        }

        try:
            # Send POST request
            response = requests.post(url, data=data)
            response.raise_for_status()  # Raise an exception for HTTP errors

            # Attempt to parse JSON response
            json_response = response.json()
            print(f"Request {i+1}: Status Code {response.status_code}, Response: {json_response}")

        except requests.exceptions.HTTPError as http_err:
            print(f"HTTP error occurred: {http_err}")
        except requests.exceptions.RequestException as req_err:
            print(f"Request exception occurred: {req_err}")
        except ValueError as val_err:
            print(f"ValueError occurred while decoding JSON: {val_err}")
        except Exception as err:
            print(f"Other error occurred: {err}")

        # Sleep for a short time to simulate rapid requests
        time.sleep(0.1)  # Adjust this delay based on your testing needs

# Number of requests to send (more than 20 in a minute to trigger rate limit)
num_requests = 25

# Execute function to send requests
send_requests(num_requests)
