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

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

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

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

//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"] }

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

{"block_source": "gnn"}

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

最后再貼出服務(wù)器的python測試代碼: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ù)器運行用到了sanic組件和一個跨域組件,所以最后記得

pip install sanic
pip install sanic_cors

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

相關(guān)文章

  • Rust中的derive屬性示例詳解

    Rust中的derive屬性示例詳解

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

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

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

    Rust捕獲全局panic并記錄進程退出日志的方法

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

    Rust字符串字面值的一些經(jīng)驗總結(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詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Rust語言和C/C++區(qū)別對比,Rust和C語言哪個好

    Rust語言和C/C++區(qū)別對比,Rust和C語言哪個好

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

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

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

    深入了解Rust的切片使用

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

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

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

    在Rust中編寫自定義Error的詳細代碼

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

最新評論

会东县| 临西县| 东明县| 光山县| 乐都县| 延庆县| 柳江县| 兰西县| 四会市| 城固县| 德安县| 昌都县| 福建省| 安远县| 尼木县| 泰来县| 罗江县| 宾阳县| 长垣县| 金川县| 师宗县| 甘南县| 高碑店市| 高要市| 元阳县| 徐汇区| 民权县| 池州市| 西宁市| 于都县| 山西省| 若羌县| 璧山县| 宝丰县| 碌曲县| 基隆市| 清苑县| 云龙县| 饶河县| 鲁山县| 温宿县|