WebServiceClientManager 1.0.1
See the version list below for details.
dotnet add package WebServiceClientManager --version 1.0.1
NuGet\Install-Package WebServiceClientManager -Version 1.0.1
<PackageReference Include="WebServiceClientManager" Version="1.0.1" />
<PackageVersion Include="WebServiceClientManager" Version="1.0.1" />
<PackageReference Include="WebServiceClientManager" />
paket add WebServiceClientManager --version 1.0.1
#r "nuget: WebServiceClientManager, 1.0.1"
#:package WebServiceClientManager@1.0.1
#addin nuget:?package=WebServiceClientManager&version=1.0.1
#tool nuget:?package=WebServiceClientManager&version=1.0.1
WebServiceClientManager
La librería WebServiceClientManager proporciona una interfaz para realizar peticiones HTTP de manera sencilla a servicios web, facilitando la gestión de tokens de autorización y ofreciendo métodos para realizar operaciones comunes como GET, POST, PUT, DELETE y PATCH.
Instalación
Para instalar la librería, puedes utilizar el siguiente comando en tu terminal:
dotnet add package WebServiceClientManager
Clase Post
La clase Post representa un objeto que podría ser utilizado en operaciones como POST para enviar datos al servidor. En este contexto, estaremos trabajando con el API de pruebas https://jsonplaceholder.typicode.com y la clase Post estará alineada con la estructura de datos proporcionada por ese API.
public class Post
{
public int userId { get; set; }
public int id { get; set; }
public string title { get; set; }
public string body { get; set; }
}
Uso Básico - Sincrónico
GET para un solo registro
// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Realizar una Petición GET para un solo registro
var response = webServiceClient.Get<Post>("/posts/1");
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
GET para una lista de registros
// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Realizar una Petición GET para una lista de registros
var response = webServiceClient.Get<List<Post>>("/posts");
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
POST
/// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Datos a enviar
var postData = new Post { userId = 1, title = "Nuevo Post", body = "Contenido del post" };
// Realizar una Petición POST
var response = webServiceClient.Post<Post>("/posts", postData, EContentType.application_json);
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
Uso Básico - Asincrónico
GET para un solo registro
// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Realizar una Petición GET Asincrónica para un solo registro
var response = await webServiceClient.GetAsync<Post>("/posts/1");
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
GET para una lista de registros
// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Realizar una Petición GET Asincrónica para una lista de registros
var response = await webServiceClient.GetAsync<List<Post>>("/posts");
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
POST
// Instanciación del Cliente
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
// Datos a enviar
var postData = new Post { userId = 1, title = "Nuevo Post", body = "Contenido del post" };
// Realizar una Petición POST Asincrónica
var response = await webServiceClient.PostAsync<Post>("/posts", postData, EContentType.application_json);
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
Uso de Bearer Token
La librería WebServiceClientManager facilita la inclusión de tokens Bearer en las peticiones HTTP. Para utilizar un token Bearer, simplemente sigue estos pasos:
- Instancia del Cliente: Crea una instancia de WebServiceClient con la URL base del servicio.
- Establecer el Token Bearer: Antes de realizar cualquier petición, utiliza el método SetAuthorizationToken para establecer el token Bearer. Este método configura automáticamente el encabezado de autorización en las solicitudes subsiguientes.
var webServiceClient = new WebServiceClient("https://jsonplaceholder.typicode.com");
var bearerToken = "tu_token_de_acceso"; // Reemplaza con tu propio token
webServiceClient.SetAuthorizationToken(bearerToken);
- Realizar la Petición: Luego de establecer el token Bearer, puedes realizar tus solicitudes HTTP de manera normal. El token se incluirá automáticamente en el encabezado de autorización de cada solicitud.
var response = webServiceClient.Get<Post>("/posts/1");
Autenticación y uso del Token
Realizar un Login y obtener un token
// Instanciación del Cliente para la autenticación
var authClient = new WebServiceClient("https://tu-servicio-auth.com");
// Datos de login
var loginData = new
{
username = "tu_usuario",
password = "tu_contraseña"
};
// Realizar una petición POST para el login
var authResponse = authClient.Post<dynamic>("/login", loginData, EContentType.application_json);
if (authResponse.IsSuccess)
{
// Obtener el token de la respuesta
var accessToken = authResponse.Content.access_token;
// Instanciación del Cliente principal o reutilización de la instancia existente con el token obtenido
var webServiceClient = new WebServiceClient("https://tu-servicio-api.com");
webServiceClient.SetAuthorizationToken(accessToken);
// Ahora puedes usar el mismo cliente para realizar otras solicitudes con el token de acceso
var response = webServiceClient.Get<Post>("/posts/1");
if (response.IsSuccess)
{
// Accede a la respuesta exitosa
var responseData = response.Content;
// Haz algo con los datos
}
else
{
// Manejar error en la solicitud subsiguiente
}
}
else
{
// Manejar error en la autenticación
}
En este ejemplo, se ha agregado un comentario para resaltar la reutilización de la instancia del cliente (webServiceClient). Este enfoque puede mejorar la eficiencia y el rendimiento de tu aplicación al evitar la creación innecesaria de nuevas instancias del cliente al hacer solicitudes subsiguientes al mismo API.
Métodos adicionales
- Put, Delete, Patch: Métodos para realizar operaciones PUT, DELETE y PATCH respectivamente.
- Métodos Async: Versiones asincrónicas de los métodos mencionados para operaciones asíncronas.
- GenerateQueryParamsFromObject: Genera una cadena de consulta a partir de un objeto.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.