如何使用Python请求从localhost向服务器发送数据?

问题描述 投票:1回答:1

我想用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

这是正确的方法还是我遗漏了什么?谢谢你。

python django localhost remote-server
1个回答
0
投票

你得到的错误是由于远程服务器的API只接受POST方法,但你不能使用浏览器的url调用进行POST请求。使用postman或curl测试API,这样你就可以设置正确的请求方法。

© www.soinside.com 2019 - 2024. All rights reserved.