package net.minecraft.client.mco; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; @SideOnly(Side.CLIENT) public abstract class Request { protected HttpURLConnection field_96367_a; private boolean field_96366_c; protected String field_96365_b; public Request(String par1Str, int par2, int par3) { try { this.field_96365_b = par1Str; this.field_96367_a = (HttpURLConnection)(new URL(par1Str)).openConnection(); this.field_96367_a.setConnectTimeout(par2); this.field_96367_a.setReadTimeout(par3); } catch (Exception exception) { throw new ExceptionMcoHttp("Failed URL: " + par1Str, exception); } } public void func_100006_a(String par1Str, String par2Str) { String s2 = this.field_96367_a.getRequestProperty("Cookie"); if (s2 == null) { this.field_96367_a.setRequestProperty("Cookie", par1Str + "=" + par2Str); } else { this.field_96367_a.setRequestProperty("Cookie", s2 + ";" + par1Str + "=" + par2Str); } } public int func_96362_a() { try { this.func_96354_d(); return this.field_96367_a.getResponseCode(); } catch (Exception exception) { throw new ExceptionMcoHttp("Failed URL: " + this.field_96365_b, exception); } } public McoOption func_98175_b() { String s = this.field_96367_a.getHeaderField("Set-Cookie"); if (s != null) { String s1 = s.substring(0, s.indexOf("=")); String s2 = s.substring(s.indexOf("=") + 1, s.indexOf(";")); return McoOption.func_98153_a(McoPair.func_98157_a(s1, s2)); } else { return McoOption.func_98154_b(); } } public String func_96364_c() { try { this.func_96354_d(); String s = this.func_96362_a() >= 400 ? this.func_96352_a(this.field_96367_a.getErrorStream()) : this.func_96352_a(this.field_96367_a.getInputStream()); this.func_96360_f(); return s; } catch (IOException ioexception) { throw new ExceptionMcoHttp("Failed URL: " + this.field_96365_b, ioexception); } } private String func_96352_a(InputStream par1InputStream) throws IOException { if (par1InputStream == null) { throw new IllegalArgumentException("input stream cannot be null"); } else { StringBuilder stringbuilder = new StringBuilder(); for (int i = par1InputStream.read(); i != -1; i = par1InputStream.read()) { stringbuilder.append((char)i); } return stringbuilder.toString(); } } private void func_96360_f() { byte[] abyte = new byte[1024]; InputStream inputstream; try { boolean flag = false; inputstream = this.field_96367_a.getInputStream(); while (true) { if (inputstream.read(abyte) <= 0) { inputstream.close(); break; } } } catch (Exception exception) { try { inputstream = this.field_96367_a.getErrorStream(); boolean flag1 = false; while (true) { if (inputstream.read(abyte) <= 0) { inputstream.close(); break; } } } catch (IOException ioexception) { ; } } } protected Request func_96354_d() { if (!this.field_96366_c) { Request request = this.func_96359_e(); this.field_96366_c = true; return request; } else { return this; } } protected abstract Request func_96359_e(); public static Request func_96358_a(String par0Str) { return new RequestGet(par0Str, 5000, 10000); } public static Request func_96361_b(String par0Str, String par1Str) { return new RequestPost(par0Str, par1Str.getBytes(), 5000, 10000); } public static Request func_104064_a(String par0Str, String par1Str, int par2, int par3) { return new RequestPost(par0Str, par1Str.getBytes(), par2, par3); } public static Request func_96355_b(String par0Str) { return new RequestDelete(par0Str, 5000, 10000); } public static Request func_96363_c(String par0Str, String par1Str) { return new RequestPut(par0Str, par1Str.getBytes(), 5000, 10000); } public static Request func_96353_a(String par0Str, String par1Str, int par2, int par3) { return new RequestPut(par0Str, par1Str.getBytes(), par2, par3); } }