zzaa.java 6.29 KB
package com.google.android.gms.internal;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocketFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.message.BasicStatusLine;

public class zzaa
  implements zzz
{
  private final zza a;
  private final SSLSocketFactory b;
  
  public zzaa()
  {
    this(null);
  }
  
  public zzaa(zza paramzza)
  {
    this(paramzza, null);
  }
  
  public zzaa(zza paramzza, SSLSocketFactory paramSSLSocketFactory)
  {
    this.a = paramzza;
    this.b = paramSSLSocketFactory;
  }
  
  private static HttpEntity a(HttpURLConnection paramHttpURLConnection)
  {
    BasicHttpEntity localBasicHttpEntity = new BasicHttpEntity();
    try
    {
      InputStream localInputStream1 = paramHttpURLConnection.getInputStream();
      localBasicHttpEntity.setContent(localInputStream1);
      localBasicHttpEntity.setContentLength(paramHttpURLConnection.getContentLength());
      localBasicHttpEntity.setContentEncoding(paramHttpURLConnection.getContentEncoding());
      localBasicHttpEntity.setContentType(paramHttpURLConnection.getContentType());
      return localBasicHttpEntity;
    }
    catch (IOException localIOException)
    {
      for (;;)
      {
        InputStream localInputStream2 = paramHttpURLConnection.getErrorStream();
      }
    }
  }
  
  private static void a(HttpURLConnection paramHttpURLConnection, zzl<?> paramzzl)
    throws IOException, zza
  {
    byte[] arrayOfByte = paramzzl.zzm();
    if (arrayOfByte != null)
    {
      paramHttpURLConnection.setDoOutput(true);
      paramHttpURLConnection.addRequestProperty("Content-Type", paramzzl.zzl());
      paramHttpURLConnection = new DataOutputStream(paramHttpURLConnection.getOutputStream());
      paramHttpURLConnection.write(arrayOfByte);
      paramHttpURLConnection.close();
    }
  }
  
  protected HttpURLConnection zza(URL paramURL)
    throws IOException
  {
    paramURL = (HttpURLConnection)paramURL.openConnection();
    paramURL.setInstanceFollowRedirects(HttpURLConnection.getFollowRedirects());
    return paramURL;
  }
  
  public HttpResponse zza(zzl<?> paramzzl, Map<String, String> paramMap)
    throws IOException, zza
  {
    Object localObject1 = paramzzl.getUrl();
    HashMap localHashMap = new HashMap();
    localHashMap.putAll(paramzzl.getHeaders());
    localHashMap.putAll(paramMap);
    if (this.a != null)
    {
      localObject2 = this.a.zzh((String)localObject1);
      paramMap = (Map<String, String>)localObject2;
      if (localObject2 == null) {
        throw new IOException("URL blocked by rewriter: " + (String)localObject1);
      }
    }
    else
    {
      paramMap = (Map<String, String>)localObject1;
    }
    localObject1 = new URL(paramMap);
    paramMap = zza((URL)localObject1);
    int i = paramzzl.zzp();
    paramMap.setConnectTimeout(i);
    paramMap.setReadTimeout(i);
    paramMap.setUseCaches(false);
    paramMap.setDoInput(true);
    if (("https".equals(((URL)localObject1).getProtocol())) && (this.b != null)) {
      ((HttpsURLConnection)paramMap).setSSLSocketFactory(this.b);
    }
    localObject1 = localHashMap.keySet().iterator();
    while (((Iterator)localObject1).hasNext())
    {
      localObject2 = (String)((Iterator)localObject1).next();
      paramMap.addRequestProperty((String)localObject2, (String)localHashMap.get(localObject2));
    }
    switch (paramzzl.getMethod())
    {
    default: 
      throw new IllegalStateException("Unknown method type.");
    case -1: 
      localObject1 = paramzzl.zzj();
      if (localObject1 != null)
      {
        paramMap.setDoOutput(true);
        paramMap.setRequestMethod("POST");
        paramMap.addRequestProperty("Content-Type", paramzzl.zzi());
        localObject2 = new DataOutputStream(paramMap.getOutputStream());
        ((DataOutputStream)localObject2).write((byte[])localObject1);
        ((DataOutputStream)localObject2).close();
      }
      break;
    }
    for (;;)
    {
      localObject1 = new ProtocolVersion("HTTP", 1, 1);
      if (paramMap.getResponseCode() != -1) {
        break;
      }
      throw new IOException("Could not retrieve response code from HttpUrlConnection.");
      paramMap.setRequestMethod("GET");
      continue;
      paramMap.setRequestMethod("DELETE");
      continue;
      paramMap.setRequestMethod("POST");
      a(paramMap, paramzzl);
      continue;
      paramMap.setRequestMethod("PUT");
      a(paramMap, paramzzl);
      continue;
      paramMap.setRequestMethod("HEAD");
      continue;
      paramMap.setRequestMethod("OPTIONS");
      continue;
      paramMap.setRequestMethod("TRACE");
      continue;
      paramMap.setRequestMethod("PATCH");
      a(paramMap, paramzzl);
    }
    Object localObject2 = new BasicStatusLine((ProtocolVersion)localObject1, paramMap.getResponseCode(), paramMap.getResponseMessage());
    localObject1 = new BasicHttpResponse((StatusLine)localObject2);
    i = paramzzl.getMethod();
    int j = ((StatusLine)localObject2).getStatusCode();
    if ((i != 4) && ((100 > j) || (j >= 200)) && (j != 204) && (j != 304)) {}
    for (i = 1;; i = 0)
    {
      if (i != 0) {
        ((BasicHttpResponse)localObject1).setEntity(a(paramMap));
      }
      paramzzl = paramMap.getHeaderFields().entrySet().iterator();
      while (paramzzl.hasNext())
      {
        paramMap = (Map.Entry)paramzzl.next();
        if (paramMap.getKey() != null) {
          ((BasicHttpResponse)localObject1).addHeader(new BasicHeader((String)paramMap.getKey(), (String)((List)paramMap.getValue()).get(0)));
        }
      }
    }
    return (HttpResponse)localObject1;
  }
  
  public static abstract interface zza
  {
    public abstract String zzh(String paramString);
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/android/gms/internal/zzaa.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */