/Languages/KeyValue.cs |
@@ -6,7 +6,10 @@ |
|
using System; |
using System.Collections.Generic; |
using System.IO; |
using System.Linq; |
using System.Text; |
using System.Threading.Tasks; |
|
namespace wasSharp.Languages |
{ |
@@ -16,7 +19,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Returns the value of a key from a key-value data string. |
/// Returns the value of a key from a key-value data string. |
/// </summary> |
/// <returns>true if the key was found in data</returns> |
public static string Get(string key, string data) |
@@ -33,11 +36,11 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Returns a key-value data string with a key set to a given value. |
/// Returns a key-value data string with a key set to a given value. |
/// </summary> |
/// <returns> |
/// a key-value data string or the empty string if either key or |
/// value are empty |
/// a key-value data string or the empty string if either key or |
/// value are empty |
/// </returns> |
public static string Set(string key, string value, string data) |
{ |
@@ -52,7 +55,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Deletes a key-value pair from a string referenced by a key. |
/// Deletes a key-value pair from a string referenced by a key. |
/// </summary> |
/// <returns>a key-value pair string</returns> |
public static string Delete(string key, string data) |
@@ -68,7 +71,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Decodes key-value pair data to a dictionary. |
/// Decodes key-value pair data to a dictionary. |
/// </summary> |
/// <returns>a dictionary containing the keys and values</returns> |
public static Dictionary<string, string> Decode(string data) |
@@ -90,7 +93,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Serialises a dictionary to key-value data. |
/// Serialises a dictionary to key-value data. |
/// </summary> |
/// <returns>a key-value data encoded string</returns> |
public static string Encode(Dictionary<string, string> data) |
@@ -102,8 +105,9 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Serialises a dictionary to key-value data. |
/// Serializes a dictionary to key-value data. |
/// </summary> |
/// <param name="data">an input string</param> |
/// <returns>a key-value data encoded string</returns> |
public static string Encode(IEnumerable<KeyValuePair<string, string>> data) |
{ |
@@ -111,10 +115,23 @@ |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2018 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Asynchronously serializes a dictionary to key-value data. |
/// </summary> |
/// <param name="data">an input string</param> |
/// <returns>a key-value data encoded string</returns> |
public static string Encode(IEnumerable<KeyValuePair<Task<string>, Task<string>>> data) |
{ |
return string.Join("&", data.AsParallel().Select(o => string.Join("=", o.Key.Result, o.Value.Result))); |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Escapes a dictionary's keys and values for sending as POST data. |
/// Escapes a dictionary's keys and values for sending as POST data. |
/// </summary> |
public static IEnumerable<KeyValuePair<string, string>> Escape(IEnumerable<KeyValuePair<string, string>> data, |
Func<string, string> func) |
@@ -121,5 +138,17 @@ |
{ |
return data.AsParallel().ToDictionary(o => func(o.Key), p => func(p.Value)); |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Escapes a dictionary's keys and values for sending as POST data. |
/// </summary> |
public static IEnumerable<KeyValuePair<Task<string>, Task<string>>> EscapeAsync(IEnumerable<KeyValuePair<string, string>> data, |
Func<string, Task<string>> func) |
{ |
return data.AsParallel().ToDictionary(async o => await func(o.Key), async p => await func(p.Value)); |
} |
} |
} |
/Web/wasHTTPClient.cs |
@@ -101,7 +101,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with binary data. |
/// Sends a PUT request to an URL with binary data. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -149,7 +149,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with text. |
/// Sends a PUT request to an URL with text. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -198,7 +198,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with binary data. |
/// Sends a PUT request to an URL with binary data. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -226,7 +226,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with stream content data. |
/// Sends a PUT request to an URL with stream content data. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -254,7 +254,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a DELETE request to an URL with stream content data. |
/// Sends a DELETE request to an URL with stream content data. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -288,7 +288,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with text. |
/// Sends a PUT request to an URL with text. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -317,7 +317,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a PUT request to an URL with text. |
/// Sends a PUT request to an URL with text. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="data">key-value pairs to send</param> |
@@ -352,7 +352,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a POST request to an URL with set key-value pairs. |
/// Sends a POST request to an URL with set key-value pairs. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="message">key-value pairs to send</param> |
@@ -381,7 +381,7 @@ |
// Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a POST request to an URL with set message. |
/// Sends a POST request to an URL with set message. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="message">the message to send</param> |
@@ -410,7 +410,7 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a POST request to an URL with set key-value pairs. |
/// Sends a POST request to an URL with set key-value pairs. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="message">key-value pairs to send</param> |
@@ -439,10 +439,39 @@ |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a GET request to an URL with set key-value pairs. |
/// Asynchronously sends a POST request to an URL with set key-value pairs. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="message">key-value pairs to send</param> |
public async Task<byte[]> POST(string URL, IEnumerable<KeyValuePair<Task<string>, Task<string>>> message) |
{ |
try |
{ |
using (var content = |
new StringContent(KeyValue.Encode(message), Encoding.UTF8, MediaType)) |
{ |
using (var response = await HTTPClient.PostAsync(URL, content)) |
{ |
return response.IsSuccessStatusCode |
? await response.Content.ReadAsByteArrayAsync() |
: null; |
} |
} |
} |
catch (Exception) |
{ |
return null; |
} |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a GET request to an URL with set key-value pairs. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
/// <param name="message">key-value pairs to send</param> |
public async Task<byte[]> GET(string URL, Dictionary<string, string> message) |
{ |
try |
@@ -464,7 +493,7 @@ |
// Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
/// <summary> |
/// Sends a GET request to an URL with set key-value pairs. |
/// Sends a GET request to an URL with set key-value pairs. |
/// </summary> |
/// <param name="URL">the url to send the message to</param> |
public async Task<byte[]> GET(string URL) |
@@ -483,9 +512,9 @@ |
} |
} |
|
public void Dispose() |
{ |
((IDisposable)HTTPClient).Dispose(); |
} |
public void Dispose() |
{ |
((IDisposable)HTTPClient).Dispose(); |
} |
} |
} |