encode的Python项目详细描述


httpcore

构建状态coverage包版本

功能支持

  • http/2http/1.1支持。
  • 异步/等待支持非阻塞http请求。
  • 默认情况下,任何地方都有严格的超时。
  • 完全键入注释。
  • 100%测试覆盖率。

加上请求的所有标准功能…

  • 国际域名和网址
  • 保持活动连接池
  • 具有cookie持久性的会话
  • 浏览器样式的SSL验证
  • 基本/摘要式身份验证
  • 优雅的钥匙/价值饼干
  • 自动解压缩
  • 自动内容解码
  • Unicode响应正文
  • 多部分文件上载todo-请求内容当前支持url编码的数据、json、字节或异步字节迭代器。
  • http(s)代理支持
  • 连接超时
  • 流媒体下载
  • .netrc支持todo
  • 分块请求

用法

提出请求:

>>>importhttpcore>>>client=httpcore.Client()>>>response=client.get('https://example.com')>>>response.status_code<HTTPStatus.OK:200>>>>response.protocol'HTTP/2'>>>response.text'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>\n...'

或者,异步请求:

注意:使用ipython从控制台尝试,因为它支持等待

>>>importhttpcore>>>client=httpcore.AsyncClient()>>>response=awaitclient.get('https://example.com')>>>response.status_code<StatusCode.OK:200>>>>response.protocol'HTTP/2'>>>response.text'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>\n...'

依赖关系

  • h2-http/2支持。
  • h11-http/1.1支持。
  • 证书-ssl证书。
  • chardet-回退自动检测响应编码。
  • idna-国际化域名支持。
  • rfc3986-url解析和规范化。
  • brotlipy-解码"brotli"压缩响应。(可选)

大量的信用是由于api布局的请求 接下来的大部分工作,以及urllib3的大量设计 从低级网络细节中获得灵感。


API参考

客户机

一个http客户端,具有连接池、重定向、cookie持久性等功能。

>>>client=Client()>>>response=client.get('https://example.org')
  • def初始([auth]、[cookies]、[verify]、[cert]、[timeout]、[pool\u limits]、[max\u redirects]、[dispatch])
  • def.request(方法,url,[数据],[参数],[头],[cookies],[验证],[流],[允许重定向],[验证],[证书],[超时])
  • def.get(url,[params],[headers],[cookies],[auth],[stream],[allow_redirects],[verify],[cert],[timeout])
  • 定义选项(url,[params],[headers],[cookies],[auth],[stream],[allow_redirects],[verify],[cert],[timeout])
  • def.head(url,[params],[headers],[cookies],[auth],[stream],[allow_redirects],[verify],[cert],[timeout])
  • def.post(url,[数据],[json],[参数],[标题],[cookies],[验证],[流],[允许重定向],[验证],[证书],[超时])
  • def.put(url,[数据],[json],[参数],[标题],[cookies],[验证],[流],[允许指导,[验证],[证书],[超时]
  • def.patch(url,[数据],[json],[参数],[标题],[cookies],[验证],[流],[允许重定向],[验证],[证书],[超时])
  • def.delete(url,[数据],[json],[参数],[标题],[cookies],[验证],[流],[允许重定向],[验证],[证书],[超时])
  • 定义准备请求(请求)
  • def.send(请求,[流],[允许重定向],[验证],[证书],[超时])
  • def.close()

响应

一个http响应。

  • 定义初始化(…)
  • 。状态代码-int(通常是astatuscodeintenum.)
  • 。原因短语-str
  • 。协议-"http/2""http/1.1"
  • .url-url
  • 。标题-标题
  • 。内容-字节
  • .text-str
  • 。编码-str
  • 。是否重定向-bool
  • 。请求-请求
  • .cookies-cookies
  • 。历史记录-列表[响应]
  • def.raise_for_status()-
  • def.json()-任何
  • def.read()-字节
  • def.stream()-字节迭代器
  • def.raw()-字节迭代器
  • def.close()-
  • def.next()-响应

请求

一个http请求。可以显式地构造,以便更精确地控制 通过电线发送的内容。

>>>request=Request("GET","https://example.org",headers={'host':'example.org'})>>>response=client.send(request)
  • def初始(方法,url,[params],[data],[json],[headers],[cookies])
  • 。方法-str
  • .url-url
  • .content-字节字节异步迭代器
  • 。标题-标题
  • .cookies-cookies

url

一个标准化的、支持idna的url。

>>>url=URL("https://example.org/")>>>url.host'example.org'
  • def\uu init(url,allow\u relative=false,params=none)
  • .scheme-str
  • 。权限-str
  • .host-str
  • .port-int
  • .path-str
  • 。查询-str
  • 。完整路径-str
  • 。片段-str
  • 。是ssl-bool
  • 。原点-原点
  • 。是绝对的url-bool
  • 。是相对的URL-bool
  • def.copy_with([方案],[权限],[路径],[查询],[片段])-url
  • def.resolve_with(url)-url

原点

一组规范的、支持IDNA的方案/主机/端口信息。

>>>Origin('https://example.org')==Origin('HTTPS://EXAMPLE.ORG:443')True
  • def初始(url)
  • 。是ssl-bool
  • .host-str
  • .port-int

标题

不区分大小写的多指令。

>>>headers=Headers({'Content-Type':'application/json'})>>>headers['content-type']'application/json'
  • def\uu init(self,headers)

cookies

类似于dict的饼干店。

>>>cookies=Cookies()>>>cookies.set("name","value",domain="example.org")
  • def初始(cookies:[dict,cookies,cookiejar])
  • .jar-Cookiejar
  • def extract_cookies(响应)
  • def set_cookie_header(请求)
  • def set(名称、值、[域]、[路径])
  • def get(名称,[域],[路径])
  • def delete(名称,[域],[路径])
  • def clear([域],[路径])
  • 标准可变映射接口

备用后端

异步客户端

异步客户端。

trioclient

待办事项


堆栈

堆栈中有两个主要层。客户端处理重定向, cookie持久性(todo)和身份验证(todo)。调度员 处理发送实际请求和获取响应。

  • 客户端-重定向、身份验证、cookies等。
  • 连接池(Dispatcher)-连接池保持活动。
    • httpconnection-单个连接。
      • http 1 1连接-单个http/1.1连接。
      • http 2连接-单个http/2连接,具有多个流。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何计算大于平均值的数字的百分比。?   JavaFX中后台执行任务的服务   xml解析用于解析java中推荐的xml解析器的小文档   java Nativescript+无法实例化接收器。。。。没找到上课的机会   maven是在数百个Java测试类上应用自定义JUnit测试运行程序的更简单方法   泛型如何引用接口在Java中实现的类类型?   java序列化程序SimpleXML只发送第一行   java字符串组合/排列   java无法创建EMRclient Sdkclientexception   JavaMaven不生成“persistence.xml”文件   java找不到主要方法   java中的正则表达式正负双精度   接口对于我试图解决的问题,有Java设计模式吗?   java在创建bean时获取异常   java如何创建<?使用JCodeModel扩展子类型>?   java在javafx中制作搜索栏   java Compare Hashmap with List=new Arraylist()   java接口与具体类