Python - wysyłanie żądań do serwera

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2804 razy

Moduł request umożliwia wysyłanie żądań do serwera, lecz zanim przejdę do sedna konieczne jest doinstalowanie tego modułu za pomocą pip co też i z najdzikszą rozkoszą czynię wpisując w konsoli systemowej polecenie:

pip install requests

Skutkujące zainstalowaniem i wyświetleniem następujących danych w konsoli:

pip install requests
Collecting requests
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
     |                                | 61kB 328kB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
     |                                | 143kB 652kB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
  Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB)
     |                                | 133kB 656kB/s
Collecting certifi>=2017.4.17 (from requests)
  Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
     |                                | 163kB 547kB/s
Collecting idna<2.9,>=2.5 (from requests)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
     |                                | 61kB 391kB/s
Installing collected packages: chardet, urllib3, certifi, idna, requests

Teraz już można się poddać niekończącej się rozkoszy pisania kodu żądania:

import requests url = 'http://localhost/add_record' headers = {'content-length': '108','Content-Type': 'application/json'} body = """{ "value": 100, "description": "luty" }""" req = requests.post(url, headers=headers, data=body) print(req.status_code) print(req.headers) print(req.text)

Zatrważającym wynikiem działania powyższego kodu powinno być:

200
{'Date': 'Sun, 12 Jan 2020 06:09:42 GMT', 'Server': 'Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.12', 'X-Powered-By': 'PHP/7.3.12', 'Access-Control-Allow-Origin': 'http://localhost/', 'Access-Control-Allow-Methods': 'POST', 'Access-Control-Max-Age': '3600', 'Access-Control-Allow-Headers': 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With', 'Content-Length': '31', 'Keep-Alive': 'timeout=5, max=100', 'Connection': 'Keep-Alive', 'Content-Type': 'application/json; charset=UTF-8'}
{"message":"Data send successfully."}

Moduł request umożliwia również wysyłanie żądań:

Propozycje książek