I'm working with a third-party API and I'm seeing some behavior that I
can't explain.

The API uses the HTTP PATCH operation to set user passwords, and in
case of unacceptable passwords, the response is supposed to be an HTML
document containing a diagnostic message in the <body> tag.

When I submit my test data via a functional testing tool (SoapUI), it
behaves as expected.

However, when I submit test data from Python code, the response content
consists only of the diagnostic message, with no enclosing <html> or <body>
tags.

Does anyone have an idea why this might be happening?

Here's a sample of the code I'm using:

    import requests

    # API credentials -- username and password
    auth = ('foo', 'bar')

    # xml for setting password
    with open('set_password.xml') as f:
        raw_xml = f.read()

    # fill in the requested password
    body = raw_xml.format(password='hello')

    headers = {'Content-type': 'text/xml'}

    url = 'https://some.server.com/api/call/'

    response = requests.patch(url, data=body, auth=auth, verify=False,
        headers=headers)

    print 'HTTP status code: %s' % response.status_code
    print 'response content:'
    print response.content

-- 
John Gordon         Imagine what it must be like for a real medical doctor to
gor...@panix.com    watch 'House', or a real serial killer to watch 'Dexter'.

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to