diff --git a/SysEx.Net.Tests/App.config b/SysEx.Net.Tests/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/SysEx.Net.Tests/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SysEx.Net.Tests/Program.cs b/SysEx.Net.Tests/Program.cs
new file mode 100644
index 0000000..1b4fc37
--- /dev/null
+++ b/SysEx.Net.Tests/Program.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SysEx.Net;
+
+namespace SysEx.Net.Tests
+{
+ class Program
+ {
+ static void Main(string[] args) => MainTask().GetAwaiter().GetResult();
+
+ static async Task MainTask()
+ {
+ try
+ {
+ var client = new SysExClient();
+
+ var resp = await client.GetWeebActionGifAsync(GifType.Slap);
+
+ Console.WriteLine(resp);
+
+ Console.ReadLine();
+ }
+ catch(Exception ex)
+ {
+ Console.WriteLine(ex);
+ }
+
+ await Task.Delay(-1);
+ }
+ }
+}
diff --git a/SysEx.Net.Tests/Properties/AssemblyInfo.cs b/SysEx.Net.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3517fae
--- /dev/null
+++ b/SysEx.Net.Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SysEx.Net.Tests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("SysEx.Net.Tests")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3d2b5880-e443-4902-97ea-1bd052d68305")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SysEx.Net.Tests/SysEx.Net.Tests.csproj b/SysEx.Net.Tests/SysEx.Net.Tests.csproj
new file mode 100644
index 0000000..747d077
--- /dev/null
+++ b/SysEx.Net.Tests/SysEx.Net.Tests.csproj
@@ -0,0 +1,58 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {3D2B5880-E443-4902-97EA-1BD052D68305}
+ Exe
+ SysEx.Net.Tests
+ SysEx.Net.Tests
+ v4.7.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {2c847b95-0feb-4323-962f-e21d3e879383}
+ SysEx.Net
+
+
+
+
\ No newline at end of file
diff --git a/SysEx.Net.sln b/SysEx.Net.sln
index 2600ce2..bf326b4 100644
--- a/SysEx.Net.sln
+++ b/SysEx.Net.sln
@@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2043
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysEx.Net", "SysEx.Net\SysEx.Net.csproj", "{2C847B95-0FEB-4323-962F-E21D3E879383}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SysEx.Net", "SysEx.Net\SysEx.Net.csproj", "{2C847B95-0FEB-4323-962F-E21D3E879383}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysEx.Net.Tests", "SysEx.Net.Tests\SysEx.Net.Tests.csproj", "{3D2B5880-E443-4902-97EA-1BD052D68305}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{2C847B95-0FEB-4323-962F-E21D3E879383}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C847B95-0FEB-4323-962F-E21D3E879383}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C847B95-0FEB-4323-962F-E21D3E879383}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3D2B5880-E443-4902-97EA-1BD052D68305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3D2B5880-E443-4902-97EA-1BD052D68305}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3D2B5880-E443-4902-97EA-1BD052D68305}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3D2B5880-E443-4902-97EA-1BD052D68305}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/SysEx.Net/WebRequest.cs b/SysEx.Net/WebRequest.cs
index 40a4e5c..9e6f961 100644
--- a/SysEx.Net/WebRequest.cs
+++ b/SysEx.Net/WebRequest.cs
@@ -52,16 +52,7 @@ namespace SysEx.Net
var client = CreateWebRequest(url);
var resp = (HttpWebResponse)(await client.GetResponseAsync());
- if (resp.StatusCode == (HttpStatusCode.OK | HttpStatusCode.Redirect))
- {
- var uri = resp.ResponseUri;
- resp.Dispose();
- client.Abort();
- return uri;
- }
- resp.Dispose();
- client.Abort();
- return null;
+ return resp.ResponseUri ?? null;
}
catch
{