찾다
백엔드 개발파이썬 튜토리얼파이썬 httpx를 사용하는 방법

Httpx란 무엇입니까

Httpx는 현대적이고 사용하기 쉬운 HTTP 클라이언트 및 서버를 제공하는 Python 라이브러리입니다. Httpx는 Python의 비동기 프레임워크와 함께 작동하며 WebSocket 및 HTTP/2를 지원합니다. Httpx는 다양한 프로토콜, 인코딩 및 인증 체계에 대해 탁월한 성능, 보안 및 유연한 구성을 제공합니다.

Httpx 설치

Httpx 라이브러리 설치는 매우 간단합니다. pip 패키지 관리자를 사용하여 다음 명령을 실행하세요:

pip install httpx

Python 3.7 이하를 사용하는 경우 Httpx의 비동기 종속성 aiohttp를 설치해야 합니다.

다음 명령을 실행하여 설치할 수 있습니다:

pip install httpx[aiohttp]

HTTP 요청 보내기

Httpx를 사용하여 HTTP 요청을 보내는 것은 매우 간단합니다. 다음은 Httpx를 사용하여 GET 요청을 보내는 간단한 예입니다.

import httpx

response = httpx.get('https://www.baidu.com')
print(response.status_code)
print(response.text)

이 예에서는 Httpx의 get 메서드를 사용하여 GET 요청을 보냈습니다. 요청한 URL은 https://www.baidu.com입니다. 이 메소드는 응답 상태 코드 및 응답 텍스트에 액세스하는 데 사용할 수 있는 Response 객체를 반환합니다.

Httpx는 GET, POST, PUT, DELETE, HEAD 및 OPTIONS를 포함한 다양한 HTTP 메서드를 지원합니다. Httpx 메서드를 사용하여 이러한 요청을 보낼 수 있습니다.

다음은 몇 가지 예입니다.

import httpx

response = httpx.post('https://www.baidu.com', data={'key': 'value'})
response = httpx.put('https://www.baidu.com', data={'key': 'value'})
response = httpx.delete('https://www.baidu.com')
response = httpx.head('https://www.baidu.com')
response = httpx.options('https://www.baidu.com')

위 예의 각 요청은 Httpx 메서드를 사용하여 보낼 수 있습니다. 이러한 메서드의 대부분은 데이터, 헤더, 쿼리 매개변수와 같은 매개변수 전달을 지원합니다.

비동기 HTTP 요청 보내기

Httpx는 비동기 HTTP 요청도 지원합니다. 다음은 Httpx를 사용하여 비동기 GET 요청을 보내는 간단한 예입니다.

import httpx
import asyncio

async def get_request():
    async with httpx.AsyncClient() as client:
        response = await client.get('https://www.baidu.com')
        print(response.status_code)
        print(response.text)

asyncio.run(get_request())

이 예에서는 Httpx의 AsyncClient 클래스를 사용하여 비동기 GET 요청을 보내는 get_request라는 비동기 함수를 만들었습니다. 비동기 함수에서는 async with 문을 사용하여 Httpx의 비동기 클라이언트를 만듭니다. 이런 방식으로 클라이언트를 생성하면 요청이 완료된 후 클라이언트가 자동으로 닫힙니다. 그런 다음 wait 키워드를 사용하여 응답을 비동기적으로 기다리고 응답 개체의 응답 상태 코드와 응답 텍스트에 액세스합니다.

동기 요청과 마찬가지로 Httpx의 비동기 클라이언트도 다양한 HTTP 메서드를 지원합니다.

다음은 몇 가지 예입니다.

import httpx
import asyncio

async def post_request():
    async with httpx.AsyncClient() as client:
        response = await client.post('https://www.baidu.com', data={'key': 'value'})
        print(response.status_code)
        print(response.text)

asyncio.run(post_request())

요청 헤더 설정

HTTP 요청을 보낼 때 일반적으로 요청 헤더를 설정해야 합니다. Httpx를 사용하면 요청 메서드에 headers 매개변수를 전달하여 요청 헤더를 설정할 수 있습니다.

예는 다음과 같습니다.

import httpx

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

response = httpx.get('https://www.baidu.com', headers=headers)
print(response.status_code)
print(response.text)

이 예에서는 headers 매개변수를 사용하여 User-Agent라는 요청 헤더를 설정합니다.

요청 매개변수 설정

Httpx를 사용하면 HTTP 요청을 보낼 때 요청 매개변수를 설정할 수 있습니다.

다음은 몇 가지 예입니다.

import httpx

params = {'key1': 'value1', 'key2': 'value2'}

response = httpx.get('https://www.baidu.com', params=params)
print(response.status_code)
print(response.text)

이 예에서는 params 매개변수를 사용하여 두 개의 쿼리 매개변수 key1과 key2를 설정합니다.

요청 본문 보내기

POST, PUT, DELETE 요청을 보낼 때 일반적으로 요청 본문에 데이터를 포함해야 합니다. Httpx를 사용하면 data 매개변수를 사용하여 요청 본문에 데이터를 설정할 수 있습니다.

예는 다음과 같습니다.

import httpx

data = {'key': 'value'}

response = httpx.post('https://www.baidu.com', data=data)
print(response.status_code)
print(response.text)

이 예에서는 data 매개변수를 사용하여 key라는 요청 본문 매개변수를 설정합니다.

JSON 데이터 보내기

Httpx를 사용하면 json 매개변수를 사용하여 JSON 데이터를 보낼 수 있습니다.

예는 다음과 같습니다.

import httpx

data = {'key': 'value'}

response = httpx.post('https://www.baidu.com', json=data)
print(response.status_code)
print(response.text)

이 예에서는 json 매개변수를 사용하여 key라는 JSON 요청 본문 매개변수를 설정합니다.

시간 초과 설정

HTTP 요청을 보낼 때 일반적으로 시간 초과를 설정해야 합니다. Httpx를 사용하면 timeout 매개변수를 사용하여 시간 초과를 설정할 수 있습니다.

예는 다음과 같습니다.

import httpx

response = httpx.get('https://www.baidu.com', timeout=5)
print(response.status_code)
print(response.text)

이 예에서는 timeout 매개변수를 사용하여 시간 제한을 5초로 설정했습니다.

오류 처리

Httpx는 다양한 유형의 예외를 발생시켜 문제를 진단하고 해결하는 데 도움을 줄 수 있습니다. 다음은 몇 가지 일반적인 예외입니다.

  • httpx.HTTPError: HTTP 오류가 발생할 때 발생합니다.

  • httpx.RequestError: 요청 오류가 발생할 때 발생합니다.

  • httpx.NetworkError: 네트워크 오류가 발생할 때 발생합니다.

  • httpx.TimeoutException: 시간 초과가 발생하면 발생합니다.

이러한 예외를 처리할 때 try/제외 문을 사용하여 예외를 포착하고 적절한 조치를 취할 수 있습니다. 예는 다음과 같습니다.

import httpx

try:
    response = httpx.get('https://www.baidu.com')
    response.raise_for_status()
except httpx.HTTPError as http_error:
    print(f'HTTP error occurred: {http_error}')
except httpx.RequestError as request_error:
    print(f'Request error occurred: {request_error}')
except httpx.NetworkError as network_error:
    print(f'Network error occurred: {network_error}')
except httpx.TimeoutException as timeout_error:
    print(f'Timeout error occurred: {timeout_error}')
else:
    print(response.status_code)
    print(response.text)

이 예에서는 try/Exception 문을 사용하여 가능한 모든 예외를 포착하고 예외 유형에 따라 적절한 조치를 취했습니다.

인증서 확인

Httpx를 사용하면 SSL 인증서를 확인하여 서버에 대한 보안 연결을 보장할 수 있습니다. 기본적으로 Httpx는 SSL 인증서를 확인합니다. 인증서 확인을 비활성화해야 하는 경우 verify 매개변수를 False로 설정할 수 있습니다.

예는 다음과 같습니다.

import httpx

response = httpx.get('https://www.baidu.com', verify=False)
print(response.status_code)
print(response.text)

이 예에서는 SSL 인증서 확인을 비활성화하기 위해 verify 매개변수를 False로 설정했습니다.

프록시 사용

Httpx를 사용하면 프록시를 사용하여 HTTP 요청을 보낼 수 있습니다. 예는 다음과 같습니다.

import httpx

proxies = {
    'http://http-proxy-server:8080',
    'https://https-proxy-server:8080'
}

response = httpx.get('https://www.baidu.com', proxies=proxies)
print(response.status_code)
print(response.text)

이 예에서는 proxies 매개변수를 사용하여 두 개의 프록시 서버를 설정했습니다.

파일 업로드

Httpx를 사용하면 파일 매개변수를 사용하여 파일을 업로드할 수 있습니다. 예는 다음과 같습니다.

import httpx

files = {'file': ('file.txt', open('file.txt', 'rb'))}

response = httpx.post('https://www.baidu.com', files=files)
print(response.status_code)
print(response.text)

在这个示例中,我们使用 files 参数上传了名为 file.txt 的文件。

Httpx 允许您使用 cookies 参数发送 cookie。以下是一个示例:

import httpx

cookies = {'name': 'value'}

response = httpx.get('https://www.baidu.com', cookies=cookies)
print(response.status_code)
print(response.text)

在这个示例中,我们使用 cookies 参数发送了名为 name 的 cookie。

위 내용은 파이썬 httpx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
파이썬 어레이를 어떻게 슬라이스합니까?파이썬 어레이를 어떻게 슬라이스합니까?May 01, 2025 am 12:18 AM

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

어떤 상황에서 목록이 배열보다 더 잘 수행 될 수 있습니까?어떤 상황에서 목록이 배열보다 더 잘 수행 될 수 있습니까?May 01, 2025 am 12:06 AM

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

파이썬 어레이를 파이썬 목록으로 어떻게 변환 할 수 있습니까?파이썬 어레이를 파이썬 목록으로 어떻게 변환 할 수 있습니까?May 01, 2025 am 12:05 AM

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.

Python에 목록이있을 때 배열을 사용하는 목적은 무엇입니까?Python에 목록이있을 때 배열을 사용하는 목적은 무엇입니까?May 01, 2025 am 12:04 AM

chooSearRaysOverListSinpyTonforBetTerferformanceAndMemoryEfficiencyInspecificscenarios.1) arrgenumericalDatasets : arraysreducememoryUsage.2) Performance-CriticalOperations : ArraysofferspeedboostsfortaskslikeApenorsearching.3) TypeSenforc

목록과 배열의 요소를 반복하는 방법을 설명하십시오.목록과 배열의 요소를 반복하는 방법을 설명하십시오.May 01, 2025 am 12:01 AM

파이썬에서는 루프에 사용하여 열거 및 추적 목록에 대한 이해를 나열 할 수 있습니다. Java에서는 루프를 위해 전통적인 사용 및 루프가 트래버스 어레이를 향해 향상시킬 수 있습니다. 1. Python 목록 트래버스 방법에는 다음이 포함됩니다. 루프, 열거 및 목록 이해력. 2. Java 어레이 트래버스 방법에는 다음이 포함됩니다. 루프 용 전통 및 루프를위한 향상.

Python Switch 문은 무엇입니까?Python Switch 문은 무엇입니까?Apr 30, 2025 pm 02:08 PM

이 기사는 버전 3.10에 도입 된 Python의 새로운 "매치"진술에 대해 논의하며, 이는 다른 언어로 된 문장과 동등한 역할을합니다. 코드 가독성을 향상시키고 기존 IF-ELIF-EL보다 성능 이점을 제공합니다.

파이썬의 예외 그룹은 무엇입니까?파이썬의 예외 그룹은 무엇입니까?Apr 30, 2025 pm 02:07 PM

Python 3.11의 예외 그룹은 여러 예외를 동시에 처리하여 동시 시나리오 및 복잡한 작업에서 오류 관리를 향상시킵니다.

파이썬의 기능 주석이란 무엇입니까?파이썬의 기능 주석이란 무엇입니까?Apr 30, 2025 pm 02:06 PM

Python의 기능 주석은 유형 확인, 문서 및 IDE 지원에 대한 기능에 메타 데이터를 추가합니다. 코드 가독성, 유지 보수를 향상 시키며 API 개발, 데이터 과학 및 라이브러리 생성에 중요합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.