netloc_http_request/
lib.rs#![warn(missing_docs)]
use async_trait::async_trait;
use netloc_core::reporter::{Data, Reporter};
pub use reqwest::Client;
pub struct HttpRequest {
pub client: Client,
pub url: String,
}
impl HttpRequest {
pub fn from_url(url: impl Into<String>) -> Self {
let client = Client::new();
let url = url.into();
Self { client, url }
}
}
#[async_trait]
impl Reporter for HttpRequest {
type Error = Box<dyn std::error::Error>;
async fn report(&self, data: &Data) -> Result<(), Self::Error> {
self.client
.post(&self.url)
.header(reqwest::header::CONTENT_TYPE, "text/plain")
.body(data.ip.clone())
.send()
.await?;
Ok(())
}
}