如何用Python 3从Back4App获取对象?请求返回Not Found排查
解决Back4App API GET请求返回"Not Found"的问题
我看你在调用Back4App的Parse API时碰到了Not Found错误,这大概率是几个常见的小问题导致的,我帮你梳理排查下:
1. 确认请求的API端点是否正确
Back4App的查询接口必须指定你要访问的类名,比如你的数据存在Users类里,请求路径就得是/classes/Users。你代码里的connection.request没写完,很大可能是漏了这个关键的端点路径。
给你补全并修正后的完整代码示例:
import json import http.client import urllib.parse # 创建服务器连接 url = "parseapi.back4app.com" connection = http.client.HTTPSConnection(url) connection.connect() # 定义GET请求参数 params = urllib.parse.urlencode({ "where": json.dumps({"Name": "Dru Love"}) }) # 替换成你Back4App数据库里的实际类名,比如"Users"或自定义类名 target_class = "YourActualClassName" # 拼接完整的请求路径 request_path = f"/classes/{target_class}?{params}" # 必须添加Back4App要求的认证Headers! headers = { "X-Parse-Application-Id": "你的App ID", # 从Back4App控制台获取 "X-Parse-REST-API-Key": "你的REST API Key" # 从Back4App控制台获取 } # 执行完整的GET请求 connection.request("GET", request_path, headers=headers) # 获取并打印响应 response = connection.getresponse() response_data = response.read().decode() print(response_data) connection.close()
2. 别忘了添加认证Headers
Back4App的所有API请求都要求携带X-Parse-Application-Id和X-Parse-REST-API-Key这两个Header,这两个值可以在你Back4App控制台的「App Settings > Security & Keys」里找到。如果没加这俩,不仅会导致权限问题,甚至可能让API无法识别你的请求路径,直接返回404。
3. 检查查询条件的准确性
你用Name: "Dru Love"作为查询条件,要注意Back4App的字段名是大小写敏感的——比如name和Name是完全不同的字段。另外也要确认数据库里确实存在这个Name值的记录,虽然没匹配到记录通常会返回空数组,但如果端点本身错了,就会出现Not Found的混淆情况。
4. 确保请求代码完整
你代码里的connection.requ...没写完,要确认请求方法(GET)、拼接好的路径、Headers都正确传递了,没有遗漏参数。
如果还是解决不了,建议先用Postman测试一下相同的请求(把Headers和路径都填对),确认API本身是正常的,再回头排查代码里的问题。
内容的提问来源于stack exchange,提问作者SPFort
相关产品推荐
相关产品推荐

