Return nothing or Error 500 when posting JSON by Python requests?

604 Views Asked by At

I have a crawl-data task, after inspecting the URL with Firefox F12 (DevTools), I find that the site needs a JSON array input looks like:

phyIDs: Array 0: "FDER047ERDF"

and returns some data also in JSON format:

trueIDs: Array 0: "802.112.1"

What I need is just the 'trueIDs', so I use Python 3.6.1 and Requests to do the job, here is parts of the code:

import json
import requests


headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0',
           'Cookie': 'JSFDKF.......',
           'Content-Type': 'application/json;charset=UTF-8'}

data = {'phyIDs': json.dumps([{0: 'FDER047ERDF'}])}

resp = requests.post(url, headers=headers, verify=False,
                     data=data)
print(resp.text)

But the printed response text is a html like message saying that some error occurs, and the status_code is 500, however, if I comment the 'Content-Type' part in headers, and use normal dict instead of JSON as the input data, then nothing returns and the status_code changes to 415, now I don't know what to do and hope someone could help me, thanks very much!

...........

Thanks guys, I have solved this. The problem is that I shouldn't add '0' in the JSON array!

0

There are 0 best solutions below