JSON 구문 분석 오류 : 인식 할 수없는 토큰 '전화': 'null', 'true', 'false'또는 NaN이 필요했습니다.

내가 크롤러 였을 때 이상을 만났는데 그것을 기록하는 것이 매우 이상했습니다.

완전한 예외

{ "timestamp": "2019-11-17T08 : 02 : 07.931 + 0000", "status": 400, "error": "Bad Request", "message": "JSON 구문 분석 오류 : 인식 할 수없는 토큰 'telephone': 이전 'null', 'true', 'false'또는 NaN이 필요합니다. 중첩 된 예외는 com.fasterxml.jackson.core.JsonParseException : 인식 할 수없는 토큰 'telephone': 'null', 'true', 'false'또는 NaN이 필요합니다. \ n at [Source : (PushbackInputStream); 줄 : 1, 열 : 11] ","path ":"/ worker / login "}

 내 코드

loginUrl = 'https://sso.verycleaner.com/worker/login'
headers = {
    'token':'',
    'versionCode':'72',
    'version':'3.0.4',
    'loginSource':'WORKER',
    'from':'android',
    'Content-Type':'application/json; charset=utf-8',
    # 'Content-Length':'73',
    'Host':'sso.verycleaner.com',
    'Connection':'Keep-Alive',
    'User-Agent':'Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36'
}
data = {
    'telephone': '1881751****',
    'password': '31FEF9****'
}
res = requests.post(loginUrl, headers=headers, data=data,verify=False)
# res = requests.post(loginUrl, headers=headers, data=json.dumps(data),verify=False)
print(res.text)

이것은 크롤링을 통해 캡처 된 앱 문자로 포스트 요청임을 보여 주므로 요청을 시작하는 데 필요한 매개 변수를 직접 전달하여 위의 오류가 발생합니다.

res = requests.post(loginUrl, headers=headers, data=data,verify=False)

올바른 것은 포스트 페이로드 요청을 사용하는 것입니다.

res = requests.post(loginUrl, headers=headers, data=json.dumps(data),verify=False)

 

추천

출처blog.csdn.net/weixin_41822224/article/details/103109759