Request python 3 документация

Requests: HTTP for Humans™¶

Requests is an elegant and simple HTTP library for Python, built for human beings.

Behold, the power of Requests:

>>> r = requests.get(‘https://api.github.com/user’, auth=(‘user’, ‘pass’)) >>> r.status_code 200 >>> r.headers[‘content-type’] ‘application/json; charset=utf8’ >>> r.encoding ‘utf-8’ >>> r.text >>> r.json()

Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your POST data. Keep-alive and HTTP connection pooling are 100% automatic, thanks to urllib3.

Beloved Features¶

Requests is ready for today’s web.

  • Keep-Alive & Connection Pooling
  • International Domains and URLs
  • Sessions with Cookie Persistence
  • Browser-style SSL Verification
  • Automatic Content Decoding
  • Basic/Digest Authentication
  • Elegant Key/Value Cookies
  • Automatic Decompression
  • Unicode Response Bodies
  • HTTP(S) Proxy Support
  • Multipart File Uploads
  • Streaming Downloads
  • Connection Timeouts
  • Chunked Requests
  • .netrc Support

Requests officially supports Python 3.7+, and runs great on PyPy.

The User Guide¶

This part of the documentation, which is mostly prose, begins with some background information about Requests, then focuses on step-by-step instructions for getting the most out of Requests.

  • Installation of Requests
    • $ python -m pip install requests
    • Get the Source Code
    • Make a Request
    • Passing Parameters In URLs
    • Response Content
    • Binary Response Content
    • JSON Response Content
    • Raw Response Content
    • Custom Headers
    • More complicated POST requests
    • POST a Multipart-Encoded File
    • Response Status Codes
    • Response Headers
    • Cookies
    • Redirection and History
    • Timeouts
    • Errors and Exceptions
    • Session Objects
    • Request and Response Objects
    • Prepared Requests
    • SSL Cert Verification
    • Client Side Certificates
    • CA Certificates
    • Body Content Workflow
    • Keep-Alive
    • Streaming Uploads
    • Chunk-Encoded Requests
    • POST Multiple Multipart-Encoded Files
    • Event Hooks
    • Custom Authentication
    • Streaming Requests
    • Proxies
    • Compliance
    • HTTP Verbs
    • Custom Verbs
    • Link Headers
    • Transport Adapters
    • Blocking Or Non-Blocking?
    • Header Ordering
    • Timeouts
    • Basic Authentication
    • Digest Authentication
    • OAuth 1 Authentication
    • OAuth 2 and OpenID Connect Authentication
    • Other Authentication
    • New Forms of Authentication

    The Community Guide¶

    This part of the documentation, which is mostly prose, details the Requests ecosystem and community.

    • Recommended Packages and Extensions
      • Certifi CA Bundle
      • CacheControl
      • Requests-Toolbelt
      • Requests-Threads
      • Requests-OAuthlib
      • Betamax
      • Encoded Data?
      • Custom User-Agents?
      • Why not Httplib2?
      • Python 3 Support?
      • Python 2 Support?
      • What are “hostname doesn’t match” errors?
      • Python for iOS
      • Stack Overflow
      • File an Issue
      • Send a Tweet
      • Process
      • Previous CVEs
      • Major Releases
      • Minor Releases
      • Hotfix Releases
      • Reasoning

      The API Documentation / Guide¶

      If you are looking for information on a specific function, class, or method, this part of the documentation is for you.

      • Developer Interface
        • Main Interface
        • Exceptions
        • Request Sessions
        • Lower-Level Classes
        • Lower-Lower-Level Classes
        • Authentication
        • Encodings
        • Cookies
        • Status Code Lookup
        • Migrating to 1.x
        • Migrating to 2.x

        The Contributor Guide¶

        If you want to contribute to the project, this part of the documentation is for you.

        • Contributor’s Guide
          • Be Cordial
          • Get Early Feedback
          • Contribution Suitability
          • Code Contributions
            • Steps for Submitting Code
            • Code Review
            • Code Style
            • New Contributors
            • Keepers of the Crystals
            • Previous Keepers of Crystals
            • Patches and Suggestions

            There are no more guides. You are now guideless. Good luck.

            Requests logo

            Requests is an elegant and simple HTTP library for Python, built for human beings.

            Источник

            Краткое руководство по библиотеке Python Requests

            Прежде чем начать, убедитесь, что установлена последняя версия Requests.

            Для начала, давайте рассмотрим простые примеры.

            Создание GET и POST запроса

            Импортируйте модуль Requests:

            Попробуем получить веб-страницу с помощью get-запроса. В этом примере давайте рассмотрим общий тайм-лайн GitHub:

             
            r = requests.get('https://api.github.com/events')

            Мы получили объект Response с именем r . С помощью этого объекта можно получить всю необходимую информацию.

            Простой API Requests означает, что все типы HTTP запросов очевидны. Ниже приведен пример того, как вы можете сделать POST запрос:

             
            r = requests.post('https://httpbin.org/post', data = )

            Другие типы HTTP запросов, такие как : PUT, DELETE, HEAD и OPTIONS так же очень легко выполнить:

             
             
            r = requests.put('https://httpbin.org/put', data = ) r = requests.delete('https://httpbin.org/delete') r = requests.head('https://httpbin.org/get') r = requests.options('https://httpbin.org/get')

            Передача параметров в URL

            Часто вам может понадобится отправить какие-то данные в строке запроса URL. Если вы настраиваете URL вручную, эти данные будут представлены в нем в виде пар ключ/значение после знака вопроса. Например, httpbin.org/get?key=val . Requests позволяет передать эти аргументы в качестве словаря, используя аргумент params . Если вы хотите передать key1=value1 и key2=value2 ресурсу httpbin.org/get , вы должны использовать следующий код:

             
             
            payload = r = requests.get('https://httpbin.org/get', params=payload) print(r.url)

            Как видно, URL был сформирован правильно:

            https://httpbin.org/get?key2=value2&key1=value1

            Ключ словаря, значение которого None , не будет добавлен в строке запроса URL.

            Вы можете передать список параметров в качестве значения:

             
             
            >>> payload = >>> r = requests.get('https://httpbin.org/get', params=payload) >>> print(r.url) https://httpbin.org/get?key1=value1&key2=value2&key2=value3

            Содержимое ответа (response)

            Мы можем прочитать содержимое ответа сервера. Рассмотрим снова тайм-лайн GitHub:

             
             
            >>> import requests >>> r = requests.get('https://api.github.com/events') >>> r.text '[
            

            Requests будет автоматически декодировать содержимое ответа сервера. Большинство кодировок unicode декодируются без проблем.
            Когда вы делаете запрос, Requests делает предположение о кодировке, основанное на заголовках HTTP. Эта же кодировка текста, используется при обращение к r.text . Можно узнать, какую кодировку использует Requests, и изменить её с помощью r.encoding :

             
            >>> r.encoding 'utf-8' >>> r.encoding = 'ISO-8859-1'

            Если вы измените кодировку, Requests будет использовать новое значение r.encoding всякий раз, когда вы будете использовать r.text . Вы можете сделать это в любой ситуации, где нужна более специализированная логика работы с кодировкой содержимого ответа.

            Например, в HTML и XML есть возможность задавать кодировку прямо в теле документа. В подобных ситуациях вы должны использовать r.content , чтобы найти кодировку, а затем установить r.encoding . Это позволит вам использовать r.text с правильной кодировкой.

            Requests может также использовать пользовательские кодировки в случае, если в них есть потребность. Если вы создали свою собственную кодировку и зарегистрировали ее в модуле codecs, используйте имя кодека в качестве значения r.encoding .

            Бинарное содержимое ответа

            Вы можете также получить доступ к телу ответа в виде байтов для не текстовых ответов:

            Передача со сжатием gzip и deflate автоматически декодируются для вас.

            Например, чтобы создать изображение на основе бинарных данных, возвращаемых при ответе на запрос, используйте следующий код:

             
             
            from PIL import Image from io import BytesIO i = Image.open(BytesIO(r.content))

            Содержимое ответа в JSON

            Если вы работаете с данными в формате JSON, воспользуйтесь встроенным JSON декодером:

            >>> import requests >>> r = requests.get('https://api.github.com/events') >>> r.json() [

            Если декодирование в JSON не удалось, r.json() вернет исключение. Например, если ответ с кодом 204 (No Content), или на случай если ответ содержит не валидный JSON, попытка обращения к r.json() будет возвращать ValueError: No JSON object could be decoded .

            Следует отметить, что успешный вызов r.json() не указывает на успешный ответ сервера. Некоторые серверы могут возвращать объект JSON при неудачном ответе (например, сведения об ошибке HTTP 500). Такой JSON будет декодирован и возвращен. Для того, чтобы проверить успешен ли запрос, используйте r.raise_for_status() или проверьте какой r.status_code .

            Необработанное содержимое ответа

            В тех редких случаях, когда вы хотите получить доступ к “сырому” ответу сервера на уровне сокета, обратитесь к r.raw . Если вы хотите сделать это, убедитесь, что вы указали stream=True в вашем первом запросе. После этого вы уже можете проделать следующее:

            Источник

            Читайте также:  Форма добавленным файлом php
Оцените статью