.Net wrapper for services hosted on https://api.systemexit.co.uk/ & https://kitsu.systemexit.co.uk/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SysEx.Net/SysEx.Net/WebRequest.cs

63 lines
1.3 KiB

using System;
using System.Net;
using System.Threading.Tasks;
using System.IO;
namespace SysEx.Net
{
class WebRequest
{
public static HttpWebRequest CreateWebRequest(Uri uri)
{
var cli = (HttpWebRequest)System.Net.WebRequest.Create(uri);
cli.AllowAutoRedirect = true;
cli.KeepAlive = false;
cli.Timeout = 20000;
cli.ProtocolVersion = HttpVersion.Version10;
return cli;
}
public static async Task<string> ReturnStringAsync(Uri url)
{
try
{
var client = CreateWebRequest(url);
var resp = (HttpWebResponse)(await client.GetResponseAsync());
if (resp.StatusCode == HttpStatusCode.OK)
{
var reader = new StreamReader(resp.GetResponseStream());
var responce = await reader.ReadToEndAsync();
resp.Dispose();
client.Abort();
return responce;
}
else
{
resp.Dispose();
client.Abort();
return null;
}
}
catch
{
return null;
}
}
public static async Task<Uri> GetRedirectUriAsync(Uri url)
{
try
{
var client = CreateWebRequest(url);
var resp = (HttpWebResponse)(await client.GetResponseAsync());
return resp.ResponseUri ?? null;
}
catch
{
return null;
}
}
}
}