def call_url(verb, data, baseUrl, testUrl, keyId, keySecret, serverProxyHost,
             serverProxyPort, serverProxyUsername, serverProxyPassword):
    r"""A convenience definition to call a URL with the necessary headers
    and payload. No need to worry about how to POST multipart/form-data
    or how to handle certain error exceptions. The return value is either 
    the respopnse body or error reason code.
    """

    params = {
        'url': baseUrl,
        'username': keyId,
        'password': keySecret,
        'proxyHost': serverProxyHost,
        'proxyPort': serverProxyPort,
        'proxyUsername': serverProxyUsername,
        'proxyPassword': serverProxyPassword
    }

    try:
        if verb == 'post':
            response = HttpRequest(params).post(testUrl,
                                                json.dumps(data),
                                                contentType='application/json')
        elif verb == 'put':
            response = HttpRequest(params).put(testUrl,
                                               json.dumps(data),
                                               contentType='application/json')
        elif verb == 'patch':
            response = HttpRequest(params).patch(
                testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'delete':
            response = HttpRequest(params).delete(
                testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'get':
            response = HttpRequest(params).get(testUrl,
                                               contentType='application/json')
        else:
            logger.error(
                "FATAL: HTTP verb error! Only POST, PUT, PATCH, DELETE and GET verbs supported."
            )
            sys.exit(201)

        output = json.loads(response.getResponse())

    # Catch all exceptions
    except Exception as error:
        logger.error("FATAL: Error! %s" % error)
        raise Exception("Failed to connect to Blazemeter Server.")
        sys.exit(205)

    return output