httpx 開(kāi)發(fā)人員界面

2022-07-27 11:35 更新

輔助函數(shù)

注意
僅當(dāng)您在控制臺(tái)中測(cè)試 HTTPX 或發(fā)出少量請(qǐng)求時(shí),才使用這些函數(shù)。使用 ?Client ?將啟用 HTTP/2 和連接池,以實(shí)現(xiàn)更高效、更持久的連接。

request方法

httpx.request(method, url, *, params=None, content=None, data=None, files=None, json=None, headers=None, cookies=None, auth=None, proxies=None, timeout=Timeout(timeout=5.0), follow_redirects=False, verify=True, cert=None, trust_env=True)

發(fā)送 HTTP 請(qǐng)求。

參數(shù):

  • method - 新的?Request?對(duì)象的 HTTP 方法:?GET?、?OPTIONS?、?HEAD?、?POST?、?PUT?、?PATCH?或?DELETE?。
  • ?url ?- 新的?Request?對(duì)象的 URL。
  • params - (可選)要作為字符串、字典或雙元組序列包含在 URL 中的查詢參數(shù)。
  • content - (可選)要包含在請(qǐng)求正文中的二進(jìn)制內(nèi)容,作為字節(jié)或字節(jié)迭代器。
  • data - (可選)將數(shù)據(jù)作為字典包含在請(qǐng)求正文中。
  • files - (可選)要包含在請(qǐng)求正文中的上載文件的字典。
  • json - (可選)要包含在請(qǐng)求正文中的 JSON 可序列化對(duì)象。
  • headers - (可選)要包含在請(qǐng)求中的 HTTP 標(biāo)頭的字典。
  • Cookie - (可選)要包含在請(qǐng)求中的 Cookie 項(xiàng)目字典。
  • auth - (可選)發(fā)送請(qǐng)求時(shí)要使用的身份驗(yàn)證類。
  • proxies - (可選)將代理密鑰映射到代理 URL 的字典。
  • timeout - (可選)發(fā)送請(qǐng)求時(shí)要使用的超時(shí)配置。
  • follow_redirects - (可選)啟用或禁用 HTTP 重定向。
  • verify - (可選)SSL 證書(shū)(也稱為 CA 捆綁包),用于驗(yàn)證所請(qǐng)求主機(jī)的身份。?True?(默認(rèn) CA 捆綁包)、SSL 證書(shū)文件的路徑、?ssl.SSLContext?或 ?False?(將禁用驗(yàn)證)。
  • cert - (可選)請(qǐng)求的主機(jī)用于對(duì)客戶端進(jìn)行身份驗(yàn)證的 SSL 證書(shū)。SSL 證書(shū)文件的路徑,或兩元組(證書(shū)文件、密鑰文件)或三元組(證書(shū)文件、密鑰文件、密碼)。
  • trust_env - (可選)啟用或禁用環(huán)境變量進(jìn)行配置。

返回: Response

用法:

>>> import httpx
>>> response = httpx.request('GET', 'https://httpbin.org/get')
>>> response
<Response [200 OK]>

get方法

httpx.get(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?GET?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

請(qǐng)注意 datafilesjson 和 content參數(shù)在此函數(shù)上不可用,因?yàn)?GET?請(qǐng)求不應(yīng)包含請(qǐng)求正文。

options方法

httpx.options(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?OPTIONS?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

請(qǐng)注意 datafilesjson 和 content參數(shù)在此函數(shù)上不可用,因?yàn)?OPTIONS?請(qǐng)求不應(yīng)包含請(qǐng)求正文。

head方法

httpx.head(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?HEAD?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

請(qǐng)注意 datafilesjson 和 content參數(shù)在此函數(shù)上不可用,因?yàn)?HEAD?請(qǐng)求不應(yīng)包含請(qǐng)求正文。

post方法

httpx.post(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?POST?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

put方法

httpx.put(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?PUT?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

patch方法

httpx.patch(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?PATCH?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

delete方法

httpx.delete(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)

發(fā)送?DELETE?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

請(qǐng)注意 datafilesjson 和 content參數(shù)在此函數(shù)上不可用,因?yàn)?DELETE?請(qǐng)求不應(yīng)包含請(qǐng)求正文。

stream方法

httpx.stream(method, url, *, params=None, content=None, data=None, files=None, json=None, headers=None, cookies=None, auth=None, proxies=None, timeout=Timeout(timeout=5.0), follow_redirects=False, verify=True, cert=None, trust_env=True)

?httpx.request()?的替代方案是流式傳輸響應(yīng)體,而不是立即將其加載到內(nèi)存中。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

另請(qǐng)參見(jiàn):流式處理響應(yīng)

Client

class httpx.Client(*, auth=None, params=None, headers=None, cookies=None, verify=True, cert=None, http1=True, http2=False, proxies=None, mounts=None, timeout=Timeout(timeout=5.0), follow_redirects=False, limits=Limits(max_connections=100, max_keepalive_connections=20, keepalive_expiry=5.0), max_redirects=20, event_hooks=None, base_url='', transport=None, app=None, trust_env=True, default_encoding='utf-8')

HTTP 客戶端,具有連接池、HTTP/2、重定向、Cookie 持久性等功能。

用法:

>>> client = httpx.Client()
>>> response = client.get('https://example.org')

參數(shù):

  • auth - (可選)發(fā)送請(qǐng)求時(shí)要使用的身份驗(yàn)證類。
  • params- (可選)要作為字符串、字典或雙元組序列包含在請(qǐng)求 URL 中的查詢參數(shù)。
  • headers - (可選)發(fā)送請(qǐng)求時(shí)要包含的 HTTP 標(biāo)頭字典。
  • cookies - (可選)發(fā)送請(qǐng)求時(shí)要包含的 Cookie 項(xiàng)目字典。
  • verify - (可選)SSL 證書(shū)(也稱為 CA 捆綁包),用于驗(yàn)證所請(qǐng)求主機(jī)的身份。?True?(默認(rèn) CA 捆綁包)、SSL 證書(shū)文件的路徑、?ssl.SSLContext?或 ?False?(將禁用驗(yàn)證)。
  • cert - (可選)請(qǐng)求的主機(jī)用于對(duì)客戶端進(jìn)行身份驗(yàn)證的 SSL 證書(shū)。SSL 證書(shū)文件的路徑,或兩元組(證書(shū)文件、密鑰文件)或三元組(證書(shū)文件、密鑰文件、密碼)。
  • proxies- (可選)將代理密鑰映射到代理 URL 的字典。
  • timeout - (可選)發(fā)送請(qǐng)求時(shí)要使用的超時(shí)配置。
  • limits - (可選)要使用的限制配置。
  • max_redirects - (可選)應(yīng)遵循的最大重定向響應(yīng)數(shù)。
  • base_url - (可選)生成請(qǐng)求 URL 時(shí)用作基礎(chǔ)的 URL。
  • transport - (可選)用于通過(guò)網(wǎng)絡(luò)發(fā)送請(qǐng)求的傳輸類。
  • app- (可選)要向其發(fā)送請(qǐng)求的 WSGI 應(yīng)用程序,而不是發(fā)送實(shí)際的網(wǎng)絡(luò)請(qǐng)求。
  • trust_env - (可選)啟用或禁用環(huán)境變量進(jìn)行配置。
  • default_encoding - (可選)用于解碼響應(yīng)文本的默認(rèn)編碼(如果響應(yīng)內(nèi)容類型標(biāo)頭中不包含字符集信息)。設(shè)置為可調(diào)用的字符集以進(jìn)行自動(dòng)字符集檢測(cè)。默認(rèn)值:“?utf-8?”。

headers

發(fā)送請(qǐng)求時(shí)要包含的 HTTP 標(biāo)頭。

cookies

發(fā)送請(qǐng)求時(shí)要包含的 Cookie 值。

params

發(fā)送請(qǐng)求時(shí)要包含在 URL 中的查詢參數(shù)。

auth

在請(qǐng)求級(jí)別傳遞任何身份驗(yàn)證類時(shí)使用。

另請(qǐng)參閱身份驗(yàn)證。

request方法

request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

生成并發(fā)送請(qǐng)求。

等效于:

request = client.build_request(...)
response = client.send(request, ...)

請(qǐng)參閱?Client.build_request() ?、?Client.send()?和 配置的合并,了解如何將各種參數(shù)與client-level?配置合并。

get方法

get(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?GET?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

head方法

head(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?HEAD?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

options方法

options(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?OPTIONS?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

post方法

post(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?POST?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

put方法

put(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?PUT?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

patch方法

patch(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?PATCH?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

delete方法

delete(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?DELETE?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

stream方法

stream(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

??httpx.request()??的替代方案是流式傳輸響應(yīng)體,而不是立即將其加載到內(nèi)存中。

參數(shù):請(qǐng)參見(jiàn)??httpx.request??。

另請(qǐng)參見(jiàn):流式處理響應(yīng)

build_request方法

build_request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, timeout=, extensions=None)

生成并返回請(qǐng)求實(shí)例。

  • ?params?、?headers?和?cookies?參數(shù)將與?client?上設(shè)置的任何值合并。
  • ?urlbase_url?參數(shù)將與?client?上的任何集合并。

另請(qǐng)參閱:請(qǐng)求實(shí)例

send方法

send(self, request, *, stream=False, auth=, follow_redirects=)

發(fā)送請(qǐng)求。

請(qǐng)求按原樣發(fā)送,未經(jīng)修改。

通常,您需要構(gòu)建一個(gè)?Client.build_request()?,以便將任何客戶端級(jí)配置合并到請(qǐng)求中,但?httpx.Request()也?支持傳遞顯式配置。

另請(qǐng)參閱:請(qǐng)求實(shí)例

close方法

close(self)

關(guān)閉?transport?和代理。

AsyncClient

class httpx.AsyncClient(*, auth=None, params=None, headers=None, cookies=None, verify=True, cert=None, http1=True, http2=False, proxies=None, mounts=None, timeout=Timeout(timeout=5.0), follow_redirects=False, limits=Limits(max_connections=100, max_keepalive_connections=20, keepalive_expiry=5.0), max_redirects=20, event_hooks=None, base_url='', transport=None, app=None, trust_env=True, default_encoding='utf-8')

異步 HTTP 客戶端,具有連接池、HTTP/2、重定向、Cookie 持久性等功能。

用法:

>>> async with httpx.AsyncClient() as client:
>>>     response = await client.get('https://example.org')

參數(shù):

  • auth - (可選)發(fā)送請(qǐng)求時(shí)要使用的身份驗(yàn)證類。
  • params - (可選)要作為字符串、字典或雙元組序列包含在請(qǐng)求 URL 中的查詢參數(shù)。
  • headers- (可選)發(fā)送請(qǐng)求時(shí)要包含的 HTTP 標(biāo)頭字典。
  • cookies - (可選)發(fā)送請(qǐng)求時(shí)要包含的 Cookie 項(xiàng)目字典。
  • verify - (可選)SSL 證書(shū)(也稱為 CA 捆綁包),用于驗(yàn)證所請(qǐng)求主機(jī)的身份。?True?(默認(rèn) CA 捆綁包)、SSL 證書(shū)文件的路徑或?False?(禁用驗(yàn)證)。
  • cert - (可選)請(qǐng)求的主機(jī)用于對(duì)客戶端進(jìn)行身份驗(yàn)證的 SSL 證書(shū)。SSL 證書(shū)文件的路徑,或兩元組(證書(shū)文件、密鑰文件)或三元組(證書(shū)文件、密鑰文件、密碼)。
  • http2 - (可選)指示是否應(yīng)啟用 HTTP/2 支持的布爾值。缺省值為 。False
  • proxies - (可選)將 HTTP 協(xié)議映射到代理 URL 的字典。
  • timeout - (可選)發(fā)送請(qǐng)求時(shí)要使用的超時(shí)配置。
  • limits - (可選)要使用的限制配置。
  • max_redirects - (可選)應(yīng)遵循的最大重定向響應(yīng)數(shù)。
  • base_url - (可選)生成請(qǐng)求 URL 時(shí)用作基礎(chǔ)的 URL。
  • transport - (可選)用于通過(guò)網(wǎng)絡(luò)發(fā)送請(qǐng)求的傳輸類。
  • app - (可選)要向其發(fā)送請(qǐng)求的 ASGI 應(yīng)用程序,而不是發(fā)送實(shí)際的網(wǎng)絡(luò)請(qǐng)求。
  • trust_env - (可選)啟用或禁用環(huán)境變量進(jìn)行配置。
  • default_encoding - (可選)用于解碼響應(yīng)文本的默認(rèn)編碼(如果響應(yīng)內(nèi)容類型標(biāo)頭中不包含字符集信息)。設(shè)置為可調(diào)用的字符集以進(jìn)行自動(dòng)字符集檢測(cè)。默認(rèn)值:“?utf-8?”。

headers

發(fā)送請(qǐng)求時(shí)要包含的 HTTP 標(biāo)頭。

cookies

發(fā)送請(qǐng)求時(shí)要包含的 Cookie 值。

params

發(fā)送請(qǐng)求時(shí)要包含在 URL 中的查詢參數(shù)。

auth

在請(qǐng)求級(jí)別傳遞任何身份驗(yàn)證類時(shí)使用。

另請(qǐng)參閱身份驗(yàn)證

request方法

request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

生成并發(fā)送請(qǐng)求。

等效于:

request = client.build_request(...)
response = await client.send(request, ...)

請(qǐng)參閱?AsyncClient.build_request() ?和?AsyncClient.send()配置的合并,了解如何將各種參數(shù)與客戶端級(jí)配置合并。

get方法

get(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?GET?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

head方法

head(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?HEAD?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

options方法

options(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?OPTIONS?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

post方法

post(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?POST?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

put方法

put(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?PUT?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

patch方法

patch(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?PATCH?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

delete方法

delete(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

發(fā)送?DELETE?請(qǐng)求。

參數(shù):請(qǐng)參見(jiàn)?httpx.request?。

stream方法

stream(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)

???httpx.request()???的替代方案是流式傳輸響應(yīng)體,而不是立即將其加載到內(nèi)存中。

參數(shù):請(qǐng)參見(jiàn)???httpx.request???。

另請(qǐng)參見(jiàn):流式處理響應(yīng)

build_request方法

build_request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, timeout=, extensions=None)

生成并返回請(qǐng)求實(shí)例。

  • ??params??、??headers??和??cookies??參數(shù)將與??client??上設(shè)置的任何值合并。
  • ??urlbase_url??參數(shù)將與?client?上的任何集合并。

另請(qǐng)參閱:請(qǐng)求實(shí)例

send方法

send(self, request, *, stream=False, auth=, follow_redirects=)

發(fā)送請(qǐng)求。

請(qǐng)求按原樣發(fā)送,未經(jīng)修改。

通常,您需要構(gòu)建一個(gè)??Client.build_request()??,以便將任何客戶端級(jí)配置合并到請(qǐng)求中,但??httpx.Request()?也?支持傳遞顯式配置。

另請(qǐng)參閱:請(qǐng)求實(shí)例

aclose方法

aclose(self)

關(guān)閉?transport?和代理。

Response

HTTP 響應(yīng)。

  • ?def __init__(...)?
  • ?.status_code? - int
  • ?.reason_phrase? - str
  • ?.http_version ?- "?HTTP/2?"或"?HTTP/1.1?"
  • ?.url? - URL
  • ?.headers? - headers
  • ?.content? - bytes
  • ?.text? - str
  • ?.encoding ?- str
  • ?.is_redirect? - bool
  • ?.request? - Request
  • ?.next_request? - 可選[Request]
  • ?.cookies? - cookies
  • ?.history? - 列表[Response]
  • ?.elapsed? - timedelta
  • 發(fā)送請(qǐng)求和針對(duì)該請(qǐng)求收到的相應(yīng)響應(yīng)調(diào)用 close() 之間經(jīng)過(guò)的時(shí)間量。 total_seconds()以正確獲取總經(jīng)過(guò)的秒數(shù)。
  • ?def .raise_for_status()? - None
  • ?def .json()? - Any
  • ?def .read()? - bytes
  • ?def .iter_raw() ?- 字節(jié)迭代器
  • ?def .iter_bytes()? - 字節(jié)迭代器
  • ?def .iter_text()? - 文本迭代器
  • ?def .iter_lines()? - 文本迭代器
  • ?def .close()? - None
  • ?def .next()? - Response
  • ?def .aread()? - bytes
  • ?def .aiter_raw()? - 異步字節(jié)迭代器
  • ?def .aiter_bytes()? - 異步字節(jié)迭代器
  • ?def .aiter_text()? - 異步文本迭代器
  • ?def .aiter_lines() ?- 異步文本迭代器
  • ?def .aclose()? - None
  • ?def .anext() ?- 響應(yīng)

Request

一個(gè) HTTP 請(qǐng)求。可以顯式構(gòu)造,以便更好地控制通過(guò)網(wǎng)絡(luò)發(fā)送的確切內(nèi)容。

>>> request = httpx.Request("GET", "https://example.org", headers={'host': 'example.org'})
>>> response = client.send(request)
  • ?def __init__(method, url, [params], [headers], [cookies], [content], [data], [files], [json], [stream])?
  • ?.method ?- str
  • ?.url? - 網(wǎng)址
  • ?.content ?- 字節(jié)、字節(jié)迭代器字節(jié)異步迭代器
  • ?.headers? - headers
  • ?.cookies? - cookie

URL

一個(gè)規(guī)范化的、支持IDNA的URL。

>>> url = URL("https://example.org/")
>>> url.host
'example.org'
  • ?def __init__(url, allow_relative=False, params=None)?
  • ?.scheme ?- str
  • ?.authority? - str
  • ?.host? - str
  • ?.port? - int
  • ?.path? - str
  • ?.query? - str
  • ?.raw_path ?- str
  • ?.fragment? - str
  • ?.is_ssl? - bool
  • ?.is_absolute_url ?- bool
  • ?.is_relative_url? - bool
  • ?def .copy_with([scheme], [authority], [path], [query], [fragment])? - URL

Headers

不區(qū)分大小寫(xiě)的多維字典。

>>> headers = Headers({'Content-Type': 'application/json'})
>>> headers['content-type']
'application/json'
  • ?def __init__(self, headers, encoding=None)?
  • ?def copy()? - headers

Cookies

一個(gè)類似字典的cookies 存儲(chǔ)庫(kù)。

>>> cookies = Cookies()
>>> cookies.set("name", "value", domain="example.org")
  • ?def __init__(cookies: [dict, Cookies, CookieJar])?
  • ?.jar ?- CookieJar
  • ?def extract_cookies(response)?
  • ?def set_cookie_header(request)?
  • ?def set(name, value, [domain], [path])?
  • ?def get(name, [domain], [path])?
  • ?def delete(name, [domain], [path])?
  • ?def clear([domain], [path])?
  • 標(biāo)準(zhǔn)可變映射接口


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)