我想用Python Requests & Django通过API从localhost发送数据到远程服务器的API。/api/send-data/
路径为 /api/send-data/
在urls.py中是 path('send-data/',view_send_data.send_data,name='send_data')
这是我的 view_send_data.py
在我的本地主机中。
@api_view(('POST',))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def send_data():
# defining the API-endpoint
API_ENDPOINT = "http://68.183.89.234/api/screen/"
# data to be sent to API
data = {'data':1234}
# sending post request and saving response as response object
r = requests.post(url = API_ENDPOINT, data = data)
print(r.json())
return Response({"success": True}, status=status.HTTP_200_OK)
api的路径 http://68.183.89.234/api/screen/
在urls.py中是 path('screen/',views_fr.screen_display,name='screen')
这是我的 views_fr.py
在我的远程服务器上。
@api_view(['POST'])
def screen_display(request):
if request.method == 'POST':
return Response({"success": True,
"response": request.data}, status=status.HTTP_200_OK)
当我调用 "http://127.0.0.1:8000/api/send-data/"
在我的浏览器中,我得到的是 405 Method Not Allowed
这是正确的方法还是我遗漏了什么?谢谢你。
你得到的错误是由于远程服务器的API只接受POST方法,但你不能使用浏览器的url调用进行POST请求。使用postman或curl测试API,这样你就可以设置正确的请求方法。