最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

rust實(shí)現(xiàn)post小程序(完整代碼)

 更新時(shí)間:2024年04月12日 10:53:38   作者:永遠(yuǎn)的麥田  
這篇文章主要介紹了rust實(shí)現(xiàn)一個(gè)post小程序,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

主要是白天折磨了半天,無(wú)論如何post出去都不能成功,搞得我專門(mén)修改了一堆server的代碼,以攔截任何訪問(wèn)服務(wù)器的數(shù)據(jù),結(jié)果還是返回502,結(jié)果晚上回來(lái)一遍過(guò),也真是奇怪的不行。先把一遍過(guò)的代碼放出來(lái),防止哪天又卡在這兒過(guò)不去。

//main.rs
use reqwest::Error;
//main.rs
async fn post_request() -> Result<(), Error> {
    let url = "http://localhost:30241/dfc/get_block_stock";
    let json_data = r#"{"block_source": "gnn"}"#;
    let client = reqwest::Client::new();
    let response = client
        .post(url)
        .header("Content-Type", "application/json")
        .body(json_data.to_owned())
        .send()
        .await?;
    println!("Status Code: {}", response.status());
    let response_body = response.text().await?;
    println!("Response body: \n{}", response_body);
    Ok(())
}
#[tokio::main]
async fn main() -> Result<(), Error> {
    post_request().await?;
    Ok(())
}

Cargo.toml文件如下:

[package]
name = "untitled"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
tokio = { version = "1.15", features = ["full"] }
reqwest = { version = "0.11.22", features = ["json"] }

意思很簡(jiǎn)單,就是訪問(wèn)路徑為/dfc/get_block_stock,json數(shù)據(jù)為:

{"block_source": "gnn"}

后面就是打印結(jié)果了。居然直接一遍過(guò)了,在公司可是花了好幾小時(shí)查遍了所有資料,也改遍了服務(wù)器的代碼。

最后再貼出服務(wù)器的python測(cè)試代碼:my_http_server.py

from sanic import Sanic
from sanic import response, request
from sanic_cors import CORS
app = Sanic(name='my-http-server')
CORS(app)
def success_msg(err_code=0):
    res = dict()
    res["err_code"] = err_code
    res["err_msg"] = "success"
    return res
@app.middleware("response")
def cors_middle_res(request: request.Request, response: response.HTTPResponse):
    """跨域處理"""
    allow_origin = '*'
    response.headers.update(
        {
            'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers': 'Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization',
        }
    )
@app.route("/dfc/get_block_stock", methods=['POST'])
async def order_buy_sell(request):
    print("order_buy_sell: from: {}, path: {}, data: {}".format(request.socket[0], request.path, request.json))
    res = success_msg(0)
    result = dict()
    res["result"] = result
    return response.json(res)

然后是main.py

from my_http_server import app
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    try:
        port = 30241
        print("my-http-server will started, serving at http://localhost:{}".format(port))
        app.run(host="0.0.0.0", port=port)
    except KeyboardInterrupt:
        print("python-sanic-http-server error.")

最后由于服務(wù)器運(yùn)行用到了sanic組件和一個(gè)跨域組件,所以最后記得

pip install sanic
pip install sanic_cors

到此這篇關(guān)于rust實(shí)現(xiàn)一個(gè)post小程序的文章就介紹到這了,更多相關(guān)rust post小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust中的derive屬性示例詳解

    Rust中的derive屬性示例詳解

    derive屬性的出現(xiàn)解決了手動(dòng)實(shí)現(xiàn)一些特性時(shí)需要編寫(xiě)大量重復(fù)代碼的問(wèn)題,它可以讓編譯器自動(dòng)生成這些特性的基本實(shí)現(xiàn),從而減少了程序員需要編寫(xiě)的代碼量,這篇文章主要介紹了Rust中的derive屬性詳解,需要的朋友可以參考下
    2023-04-04
  • Rust調(diào)用Windows API 如何獲取正在運(yùn)行的全部進(jìn)程信息

    Rust調(diào)用Windows API 如何獲取正在運(yùn)行的全部進(jìn)程信息

    本文介紹了如何使用Rust調(diào)用WindowsAPI獲取正在運(yùn)行的全部進(jìn)程信息,通過(guò)引入winapi依賴并添加相應(yīng)的features,可以實(shí)現(xiàn)對(duì)不同API集的調(diào)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Rust捕獲全局panic并記錄進(jìn)程退出日志的方法

    Rust捕獲全局panic并記錄進(jìn)程退出日志的方法

    本文提供了捕獲全局panic并記錄進(jìn)程退出日志的方法,首先使用 panic::set_hook 注冊(cè)異常處理及panic 觸發(fā)異常,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Rust字符串字面值的一些經(jīng)驗(yàn)總結(jié)

    Rust字符串字面值的一些經(jīng)驗(yàn)總結(jié)

    字符串有兩種表現(xiàn)形式,一種是基本類型,表示字符串的切片,以&str表示,另一種是可變的string類型,下面這篇文章主要給大家介紹了關(guān)于Rust字符串字面值的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解

    Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解

    這篇文章主要為大家介紹了Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Rust語(yǔ)言和C/C++區(qū)別對(duì)比,Rust和C語(yǔ)言哪個(gè)好

    Rust語(yǔ)言和C/C++區(qū)別對(duì)比,Rust和C語(yǔ)言哪個(gè)好

    Rust具有與C語(yǔ)言相當(dāng)?shù)乃俣群蛢?nèi)存效率,但無(wú)需手動(dòng)內(nèi)存管理或垃圾回收,它擁有出色的工具支持、友好的編譯器和不斷發(fā)展的開(kāi)發(fā)者社區(qū),使用Rust能提升程序性能,最重要的是,對(duì)Python開(kāi)發(fā)者而言,Rust比C語(yǔ)言更容易學(xué)習(xí)
    2025-02-02
  • rust 如何使用文件鎖防止應(yīng)用多開(kāi)

    rust 如何使用文件鎖防止應(yīng)用多開(kāi)

    這篇文章主要介紹了rust 如何使用文件鎖防止應(yīng)用多開(kāi),本文給出了進(jìn)程只能單開(kāi)的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 深入了解Rust的切片使用

    深入了解Rust的切片使用

    除了引用,Rust?還有另外一種不持有所有權(quán)的數(shù)據(jù)類型:切片(slice),切片允許我們引用集合中某一段連續(xù)的元素序列,而不是整個(gè)集合。本文讓我們來(lái)深入了解Rust的切片
    2022-11-11
  • Rust中字符串與格式化操作方法

    Rust中字符串與格式化操作方法

    Rust提供了多種字符串類型和強(qiáng)大的格式化工具,主要有兩種字符串類型:&str(字符串切片)和String(動(dòng)態(tài)字符串),二者均基于UTF-8 編碼,本文重點(diǎn)介紹Rust中字符串與格式化的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-10-10
  • 在Rust中編寫(xiě)自定義Error的詳細(xì)代碼

    在Rust中編寫(xiě)自定義Error的詳細(xì)代碼

    Result<T, E> 類型可以方便地用于錯(cuò)誤傳導(dǎo),Result<T, E>是模板類型,實(shí)例化后可以是各種類型,但 Rust 要求傳導(dǎo)的 Result 中的 E 是相同類型的,所以我們需要編寫(xiě)自己的 Error 類型,本文給大家介紹了在Rust中編寫(xiě)自定義Error的詳細(xì)代碼,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

浮梁县| 泾川县| 正安县| 庆城县| 洛扎县| 象州县| 东明县| 名山县| 石渠县| 贵港市| 静安区| 景谷| 府谷县| 措美县| 峡江县| 额尔古纳市| 织金县| 含山县| 山阴县| 定日县| 萝北县| 景洪市| 西丰县| 乡城县| 大名县| 英山县| 和田县| 金寨县| 邻水| 车险| 桂林市| 青河县| 岳西县| 陇南市| 临海市| 博客| 五大连池市| 石景山区| 东乡县| 张家界市| 巢湖市|