4个版本
新 0.2.1 | 2024年8月22日 |
---|---|
0.2.0 | 2024年8月22日 |
0.1.1 | 2024年8月21日 |
0.1.0 | 2024年8月21日 |
#191 在 HTTP客户端
每月下载量133
16KB
291 行
teahttpd
一个简单的(fetch包装器)WASM HTTP客户端
请提出一些建议,因为这个胶带飞机是以“应该工作,会工作,它确实工作!”为动机运行的!
如何使用
let _res: web_sys::Request = teahttp::TeaRequest::get("/api/something")
.header("Accept", "application/json")?
.clone()
.slice_body(&encoded)
.invoke()
.await?;
let _res: web_sys::Request = teahttp::TeaRequest::post("/api/upload")
.header("Content-Type", "application/octet-stream")?
.header("Content-Length", &encoded.len().to_string())?
.clone()
.slice_body(&encoded)
.invoke()
.await?;
如有必要,待办事项
- 更好的错误处理
- serde
- 自己动手做,包装这个吗?
lib.rs
:
teahttp
非常简单,但在WASM环境中运行良好。由于许多HTTP客户端往往会搞砸WebWorker全局,这个受ehttp
启发的crate旨在提供帮助。虽然它似乎是一个不错的选择,但许多事情都需要手动完成。
一些示例可以帮助理解问题
TeaRequest::get("/api/something")
.invoke()
.await? // web_sys::Response
let some_body = b"lorem ipsum dolor si amet";
TeaRequest::post("/api/upload")
.header("Content-Length", some_body)?
.slice_body(some_body.as_slice() /* &[u8] */)
.invoke()
.await?
TeaRequest::post("/api/submit")
.header("Content-Length", &12.to_string())?
.str_body("Hello World!" /* &str */)
.invoke()
.await?
祝您玩得开心
依赖项
~7–9.5MB
~177K SLoC