aboutsummaryrefslogtreecommitdiff
path: root/Mammoth/Couscous/java/net/URL.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Mammoth/Couscous/java/net/URL.cs')
-rw-r--r--Mammoth/Couscous/java/net/URL.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/Mammoth/Couscous/java/net/URL.cs b/Mammoth/Couscous/java/net/URL.cs
new file mode 100644
index 0000000..88479e8
--- /dev/null
+++ b/Mammoth/Couscous/java/net/URL.cs
@@ -0,0 +1,28 @@
+using System.Net;
+using Mammoth.Couscous.java.io;
+
+namespace Mammoth.Couscous.java.net {
+ internal class URL {
+ private readonly string _url;
+
+ internal URL(string url) {
+ _url = url;
+ }
+
+ internal InputStream openStream() {
+ try {
+ var response = WebRequest.Create(_url).GetResponse();
+ try {
+ return ToJava.StreamToInputStream(response.GetResponseStream());
+ } catch {
+ response.Close();
+ throw;
+ }
+ } catch (System.UriFormatException) {
+ return ToJava.StreamToInputStream(System.IO.File.OpenRead(_url));
+ } catch (System.Net.WebException exception) {
+ throw new java.io.IOException(exception.Message);
+ }
+ }
+ }
+}