title: Wget or similar for Android
body: <p>I need to make petitions against a https server and download data that the server sends back (text, video files or image files), inside my Android app.</p>
  
  <p>It works fine in the terminal of suse Linux and wget or curl. Request have this structure:</p>
  
  <pre><code>wget --post-data "token=xxxx&amp;option1=1&amp;option2=4&amp;File=video" https://api.serverx.com/ --no-check-certificate
  </code></pre>
  
  <p>My question is if there is any wget or similar working in Android, or how can I make this kind of petitions in another way.</p>
  
  <p>I read about implement wget in the NDK but I'd like to know your experience or recomendations.
  Thanks</p>
  
  <h1>Solution</h1>
  
  <p>Using NDK to port Wget was too complicated.
  After some research I found a solution using DefaultHttpClient and adding a couple of classes to avoid checking the certificates. I follow <a href="http://www.virtualzone.de/2011-02-27/how-to-use-apache-httpclient-with-httpsssl-on-android" rel="nofollow">this article</a></p>
  
  <pre><code>SchemeRegistry schemeRegistry = new SchemeRegistry();
      schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
      schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));
  
      HttpParams params = new BasicHttpParams();
      params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
      params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
      params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
      HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
  
      ClientConnectionManager cm = new SingleClientConnManager(params, schemeRegistry);
      DefaultHttpClient httpClient = new DefaultHttpClient(cm, params);
  </code></pre>