LeOS-Genesis/app/src/main/java/com/darkweb/genesissearchengine/httpManager/httpclient.java

96 lines
3.1 KiB
Java

package com.darkweb.genesissearchengine.httpManager;
import android.os.Handler;
import android.os.Message;
import com.darkweb.genesissearchengine.constants.messages;
import cz.msebera.android.httpclient.HttpResponse;
import cz.msebera.android.httpclient.client.HttpClient;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.conn.ssl.NoopHostnameVerifier;
import cz.msebera.android.httpclient.conn.ssl.SSLConnectionSocketFactory;
import cz.msebera.android.httpclient.conn.ssl.TrustSelfSignedStrategy;
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;
import cz.msebera.android.httpclient.impl.client.HttpClients;
import cz.msebera.android.httpclient.ssl.SSLContexts;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class httpclient
{
private HttpGet request = null;
private String html = "";
public void httpConnection(String url,Handler updateUIHandler,boolean isCachedRequest)
{
new Thread()
{
public void run()
{
try
{
String c_url = url.replace("http://boogle","https://boogle").replaceAll("genesis.onion","boogle.store").replaceAll("genesis.store","boogle.store");
HttpClient client=new DefaultHttpClient();;
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(
SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
client = HttpClients.custom().setSSLSocketFactory(scsf).build();
request = new HttpGet(c_url);
HttpResponse response = client.execute(request);
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
str.append(line);
}
in.close();
html = str.toString();
}
catch (Exception e)
{
if(!request.isAborted() && !isCachedRequest)
{
startPostTask(messages.INTERNET_ERROR,updateUIHandler);
}
}
request = null;
}
}.start();
}
public void startPostTask(int m_id,Handler updateUIHandler)
{
Message message = new Message();
message.what = m_id;
updateUIHandler.sendMessage(message);
}
public String getHtmlResponse()
{
return html;
}
public boolean isRequestLoading()
{
return request!=null;
}
public void stopRequest()
{
new Thread()
{
public void run()
{
request.abort();
}
}.start();
}
}