src/client/http_client.rs: implement post

without parameters for now...
This commit is contained in:
Dietmar Maurer 2019-02-20 14:09:55 +01:00
parent 8c75372b79
commit 81da38c143

View File

@ -96,6 +96,26 @@ impl HttpClient {
Self::run_request(request) Self::run_request(request)
} }
pub fn post(&self, path: &str) -> Result<Value, Error> {
let path = path.trim_matches('/');
let url: Uri = format!("https://{}:8007/{}", self.server, path).parse()?;
let (ticket, token) = self.login()?;
let enc_ticket = percent_encode(ticket.as_bytes(), DEFAULT_ENCODE_SET).to_string();
let request = Request::builder()
.method("POST")
.uri(url)
.header("User-Agent", "proxmox-backup-client/1.0")
.header("Cookie", format!("PBSAuthCookie={}", enc_ticket))
.header("CSRFPreventionToken", token)
.body(Body::empty())?;
Self::run_request(request)
}
fn login(&self) -> Result<(String, String), Error> { fn login(&self) -> Result<(String, String), Error> {
let url: Uri = format!("https://{}:8007/{}", self.server, "/api2/json/access/ticket").parse()?; let url: Uri = format!("https://{}:8007/{}", self.server, "/api2/json/access/ticket").parse()?;