我正在尝试使用Python请求和Django通过API将数据从本地主机发送到远程服务器中的API:/api/send-data/
urls.py中/api/send-data/
的路径为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)
urls.py中位于http://68.183.89.234/api/screen/
的api的路径为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
这是正确的方法还是我错过了什么?谢谢。
答案 0 :(得分:0)
您收到的错误是因为远程服务器API仅接受POST方法,但是您无法使用浏览器url调用发出POST请求。使用邮差或curl测试API,以便您可以设置正确的请求方法。