调用horoguides.com的watch/searchWatches API端点始终返回无效响应的问题求助
API调用返回
{'status': 'invalid'}的排查与解决思路 刚帮你梳理了下这个问题,你的代码里有几个关键细节没跟浏览器的实际请求对齐,导致接口返回invalid,咱们一步步拆解:
1. 请求体格式与Content-Type冲突
你在请求头里设置了multipart/form-data类型,但代码里用了json=payload来发送数据——requests的json参数会自动把请求头的Content-Type改成application/json,这就和你手动设置的类型完全矛盾了。浏览器调用这个接口时是用multipart/form-data来传参的,所以得用对应格式构造请求体。
2. Cookie已失效
你代码里的Cookie是抓包时的旧值,像PHPSESSID这类会话Cookie是有有效期的,而且网站会验证会话合法性,旧Cookie大概率已经过期或者失效了,这是返回invalid的常见原因。
3. 请求头格式错误
你写的sec-ch-ua字段格式明显不对:"^\^Chromium^^;v=^\^104^^, ^\^",正常格式应该是类似"Chromium";v="104", "Google Chrome";v="104", "Not A;Brand";v="99"这种,格式错误可能会被服务器的UA检测拦截。
修正后的示例代码
import requests from requests_toolbelt.multipart.encoder import MultipartEncoder url = "https://horoguides.com/hk/ajaj/watch/searchWatches" # 用MultipartEncoder构造标准的multipart/form-data请求体 multipart_data = MultipartEncoder( fields={ "addLimit": "LIMIT 0, 20", "addOrder": "ORDER BY establish DESC" } ) headers = { 'Accept': "application/json, text/javascript, */*; q=0.01", 'Accept-Language': "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7", 'Connection': "keep-alive", # 直接用MultipartEncoder生成的content_type,自动包含正确的boundary 'Content-Type': multipart_data.content_type, # 替换成你当前浏览器抓包到的有效Cookie,每次调用前最好重新获取 'Cookie': "PHPSESSID=your_fresh_session_id; _gid=GA1.2.xxxxxx.xxxxxx; ...", 'Origin': "https://horoguides.com", 'Referer': "https://horoguides.com/hk/watch_finder", 'Sec-Fetch-Dest': "empty", 'Sec-Fetch-Mode': "cors", 'Sec-Fetch-Site': "same-origin", 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36", 'X-Requested-With': "XMLHttpRequest", 'sec-ch-ua': '"Chromium";v="104", "Google Chrome";v="104", "Not A;Brand";v="99"' } resp = requests.post(url, data=multipart_data, headers=headers) print(resp.status_code) print(resp.json())
额外注意事项
- 务必替换Cookie为当前有效的会话值,建议每次调用前重新抓包获取最新的
PHPSESSID和其他Cookie字段。 - 检查浏览器请求中是否存在CSRF Token等额外验证参数,如果有的话,需要把这些参数也加入到请求体的
fields里。 - 尽量保持所有请求头和浏览器的实际请求完全一致,不要遗漏任何可能的验证字段。
内容的提问来源于stack exchange,提问作者Rapid1898
相关产品推荐
相关产品推荐

