httpx 調(diào)用 Python Web Apps

2022-07-26 11:42 更新

您可以使用WSGI協(xié)議將?httpx-client?配置為直接調(diào)用Python web應(yīng)用程序。

這對(duì)于兩個(gè)主要用例特別有用:

  • 在測(cè)試用例中用?httpx?作客戶端。
  • 在測(cè)試期間或在開發(fā)/過渡環(huán)境中模擬外部服務(wù)。

下面是針對(duì) Flask 應(yīng)用程序進(jìn)行集成的示例:

from flask import Flask
import httpx

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

with httpx.Client(app=app, base_url="http://testserver") as client:
    r = client.get("/")
    assert r.status_code == 200
    assert r.text == "Hello World!"

對(duì)于一些更復(fù)雜的情況,您可能需要自定義 WSGI 傳輸。這使您可以:

  • 檢查 500 錯(cuò)誤響應(yīng),而不是通過設(shè)置?raise_app_exceptions=False ?來引發(fā)異常。
  • 通過設(shè)置 ?script_name?(WSGI) 在子路徑上掛載 WSGI 應(yīng)用程序。
  • 通過設(shè)置 ?remote_addr?(WSGI) 為請(qǐng)求使用給定的Client地址。

例如:

# Instantiate a client that makes WSGI requests with a client IP of "1.2.3.4".
transport = httpx.WSGITransport(app=app, remote_addr="1.2.3.4")
with httpx.Client(transport=transport, base_url="http://testserver") as client:
    ...


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)