Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
PosterBase.cs
1using System;
3using System.Security.Cryptography.X509Certificates;
4using System.Threading.Tasks;
6
8{
12 public abstract class PosterBase : IContentPoster
13 {
17 public PosterBase()
18 {
19 }
20
24 public abstract string[] UriSchemes
25 {
26 get;
27 }
28
35 public abstract bool CanPost(Uri Uri, out Grade Grade);
36
46 public virtual Task<ContentResponse> PostAsync(Uri Uri, object Data, X509Certificate Certificate,
47 EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
48 {
49 return this.PostAsync(Uri, Data, Certificate, RemoteCertificateValidator, InternetContent.DefaultTimeout, Headers);
50 }
51
62 public virtual async Task<ContentResponse> PostAsync(Uri Uri, object Data, X509Certificate Certificate,
63 EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, int TimeoutMs, params KeyValuePair<string, string>[] Headers)
64 {
66
67 if (Data is null)
68 Result = await this.PostAsync(Uri, Array.Empty<byte>(), string.Empty, Certificate, RemoteCertificateValidator, TimeoutMs, Headers);
69 else
70 {
71 ContentResponse P = await InternetContent.EncodeAsync(Data, System.Text.Encoding.UTF8);
72 if (P.HasError)
73 return P;
74
75 Result = await this.PostAsync(Uri, P.Encoded, P.ContentType, Certificate, RemoteCertificateValidator, TimeoutMs, Headers);
76 }
77
78 if (Result.HasError)
79 return new ContentResponse(Result.Error);
80 else
81 return await InternetContent.DecodeAsync(Result.ContentType, Result.Encoded, Uri);
82 }
83
94 public virtual Task<ContentBinaryResponse> PostAsync(Uri Uri, byte[] EncodedData, string ContentType,
95 X509Certificate Certificate, EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
96 {
97 return this.PostAsync(Uri, EncodedData, ContentType, Certificate, RemoteCertificateValidator, InternetContent.DefaultTimeout, Headers);
98 }
99
111 public abstract Task<ContentBinaryResponse> PostAsync(Uri Uri, byte[] EncodedData, string ContentType,
112 X509Certificate Certificate, EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, int TimeoutMs,
113 params KeyValuePair<string, string>[] Headers);
114
115 }
116}
Contains information about a binary response to a content request.
string ContentType
Internet Content-Type of encoded object.
Contains information about a response to a content request.
byte[] Encoded
Encoded object.
string ContentType
Internet Content-Type of encoded object.
bool HasError
If an error occurred.
Static class managing encoding and decoding of internet content.
static int DefaultTimeout
Default timeout of internet access methods, in milliseconds.
static Task< ContentResponse > EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
Encodes an object.
static Task< ContentResponse > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri)
Decodes an object.
Abstract base class for posters.
Definition: PosterBase.cs:13
virtual async Task< ContentResponse > PostAsync(Uri Uri, object Data, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:62
abstract Task< ContentBinaryResponse > PostAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
abstract string[] UriSchemes
Supported URI schemes.
Definition: PosterBase.cs:25
virtual Task< ContentBinaryResponse > PostAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:94
abstract bool CanPost(Uri Uri, out Grade Grade)
If the poster is able to post to a resource, given its URI.
virtual Task< ContentResponse > PostAsync(Uri Uri, object Data, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:46
PosterBase()
Abstract base class for posters.
Definition: PosterBase.cs:17
Basic interface for Internet Content posters. A class implementing this interface and having a defaul...
Grade
Grade enumeration
Definition: Grade.cs:7