/*

  • @Author: rgoogle 110@qq.com

  • @Date: 2023-03-12 10:30:23

  • @LastEditors: rgoogle 110@qq.com

  • @LastEditTime: 2023-03-12 12:54:48

  • @FilePath: \chatgpt\src\main.rs

  • @Description: 这是默认设置,请设置customMade, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ use std::{io, collections::HashMap}; use std::io::BufRead; use reqwest::header::HeaderMap; use serde::{Deserialize}; use serde_derive::Deserialize; #[tokio::main] async fn main() { // let input_buf=get_user_input();

    // println!('{}',input_buf); match send_post().await { Ok(res)=>{ println!('{:#?}',res); let data:Vec=serde_json::from_str(&res) .map(|v| Completion::deserialize(v).map_err(|e| format!('Deserialization error: {}', e))).unwrap() .collect(); let completions:Vec=data.iter().map(|c| c.completion.clone()).collect(); println!('{:#?}',completions); } Err(e)=>{eprintln!('{:?}',e)} }

}

#[derive(Debug, Deserialize)] struct Completion{ #[serde(rename='completion')] completion:String, }

//获取用户键盘输入 fn _get_user_input() -> String { let mut input_buf = String::new(); let _input = io::stdin().read_line(&mut input_buf).expect('fail to get user input.'); input_buf }

async fn send_post() -> Result<String, reqwest::Error> { let client = reqwest::Client::new(); //post 请求头 let mut header = HeaderMap::new(); header.insert('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/110.0.0.0 Safari/537.36'.parse().expect('unsolve the userAgent header value.'), ); header.insert('referer', 'https//www.covery.com'.parse().expect('unsolve the referer value.')); header.insert('sec-ch-ua', 'sec-ch-ua'.parse().expect('ms'));

// post 请求体
let mut data = HashMap::new();
data.insert('prompt', 'hello');

Ok(client.post('https://free-api.cveoy.com/v3/completions')
    .headers(header)
    .json(&data)
    .send()
    .await?
    .text()
    .await?
)

}

Rust 使用 reqwest 和 serde 发送 POST 请求并解析 JSON 数据

原文地址: https://www.cveoy.top/t/topic/lBOP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录