Android – HTTPS Connection

Scopul acestui tutorial este de a exemplifica cum se realizeaza un request către HTTPS.

https-android


import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.conn.ssl.SSLSocketFactory;

public class MySSLSocketFactory extends SSLSocketFactory
{
SSLContext sslContext = SSLContext.getInstance("TLS");

public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
{
super(truststore);

TrustManager tm = new X509TrustManager()
{
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException
{
}

public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
{
}

public X509Certificate[] getAcceptedIssuers()
{
return null;
}
};

sslContext.init(null, new TrustManager[] { tm }, null);
}

@Override
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException
{
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
}

@Override
public Socket createSocket() throws IOException
{
return sslContext.getSocketFactory().createSocket();
}
}


public static HttpClient getNewHttpClient()
{
try
{
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);

SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", sf, 443));

ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);

return new DefaultHttpClient(ccm, params);
}
catch (Exception e)
{
return new DefaultHttpClient();
}
}

public static String getRequestWithXML(String getURL)
{
String response = "";
try
{
HttpClient client = getNewHttpClient();
HttpGet get = new HttpGet(getURL);
get.setHeader("Accept", "application/xml");
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null)
{
response = EntityUtils.toString(resEntityGet);
Log.i("GET RESPONSE", response);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return response;
}

Android – HTTPS Connection

Android SQLite Database

SQLite este o bază de date Open Source.  SQLite suportă sintaxă SQL, tranzacții și interogări. Acest tip de bază de date necesită aproximativ 250 KByte de memorie la runtime.

Fiecare device ce are ca sistem Android permite instalarea de aplicații care utilizează baze de date SQLite.

android_sqlite

Continue reading “Android SQLite Database”

Android SQLite Database

Android – Transmitere informație

Varianta 1.

Transmitere de date între Fragment și Activity:

Intent intent =newIntent(getActivity().getBaseContext(),TargetActivity.class);
intent.putExtra("message", message);
getActivity().startActivity(intent);

 

Varianta 2.

Primire informație în Activity:

Intent intent = getIntent();
String message = intent.getStringExtra("message");

 

Varianta 3.

Transmitere de date între Activity și Activity:

Intent intent =newIntent(MainActivity.this,TargetActivity.class);
intent.putExtra("message", message);
startActivity(intent);

 

Varianta 4.

Primire informație în Activity

Intent intent = getIntent();
String message = intent.getStringExtra("message");

 

Varianta 5.

Transmitere de date între Activity și Fragment:

Bundle bundle=newBundle();
bundle.putString("message","From Activity");//set Fragmentclass ArgumentsFragmentclass fragobj=newFragmentclass();
fragobj.setArguments(bundle);

Varianta 6. 

Primire  informație în Fragment:

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)
{
   String strtext=getArguments().getString("message");
   return inflater.inflate(R.layout.fragment, container,false);
}
Android – Transmitere informație

Android – XML Parser

Serviciu Web

Un serviciu web este o modalitate standardizată de a pune la dispoziție utilizatorilor o aplicație web, pe Internet. Multitudinea de protocoale și standarde disponibile au dat posibilitatea comunicării între aplicații pe sisteme aflate la distanțe mari. Astfel, există sisteme ce oferă servicii de informare și procesare a informațiilor care în general sunt independente de platforma hardware; accesul la acestea se face prin servicii web.

android_xml_100

Continue reading “Android – XML Parser”

Android – XML Parser