Google+

Thursday, November 10, 2011

Soap Request in android

Well you need to understand what a soap request is made of:.



Code:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <m:GetStockPrice xmlns:m="http://www.example.org/stock">
      <m:StockName>Google</m:StockName>
    </m:GetStockPrice>
  </soap:Body>
</soap:Envelope>

The message has a soap:envelope with a soap:header and a soap:body.

The content type of a soap requests is application/soap-xml

Now to send a soap request with Android you have to use a URLConnection and 2 streams.
An inputstream and an outputstream.


Code:
URL u = new URL(url.toString());
URLConnection cnn = u.openConnection();
cnn.setDoOutput(true);
cnn.setDoInput(true);

((HttpURLConnection)cnn).setRequestMethod("POST");
cnn.setRequestProperty("Content-Type", "application/soap-xml; charset=utf-8");
cnn.setRequestProperty("SOAPAction", method);

OutputStream outStream = cnn.getOutputStream();
outStream.write(soapXML);

InputStream in = cnn.getInputStream();

  1. You need to open the URLConnection.
  2. You set the requestMethod to POST.
  3. You set the content-type to application/soap-xml.
  4. You set a SOAPAction header to the method you want to use. (This is not shown on the previous example which I have from wikipedia.)
  5. You write the soapXml envelope to the outputstream.
  6. You read the response from the inputstream.


You can parse the response with an XmlParser if you want to.

I have combined the send and receive code into a class called Webservice. And I made a class called SoapMessage to handle the construction of a Soap envelope.
Then I send the SoapMessage using the send method of the Webservice class and I add an OnReceiveListener to wait for the response.

This is not the most sophisticated method and probably not the most complete method to send and receive Soap messages but it works in android 2.2 perfectly. As SAX Parser not getting proper response.




SAX Parser example coming soon in next Post




source : http://androidforums.com/developer-101/233069-how-create-weservice-client-android.html

Monday, October 3, 2011

How to Create MD5 Hashed Code in Android

Dear Blog Viewer,


What is the MD5 hash?
The MD5 hash also known as checksum for a file is a 128-bit value, something like a fingerprint of the file. There is a very small possibility of getting two identical hashes of two different files. This feature can be useful both for comparing the files and their integrity control.
Let us imagine a situation that will help to understand how the MD5 hash works.
Alice and Bob have two similar huge files. How do we know that they are different without sending them to each other? We simply have to calculate the MD5 hashes of these files and compare them.
MD5 Hash Properties
The MD5 hash consists of a small amount of binary data, typically no more than 128 bits. All hash values share the following properties:
Hash length
The length of the hash value is determined by the type of the used algorithm, and its length does not depend on the size of the file. The most common hash value lengths are either 128 or 160 bits.
Non-discoverability
Every pair of nonidentical files will translate into a completely different hash value, even if the two files differ only by a single bit. Using today's technology, it is not possible to discover a pair of files that translate to the same hash value.
Repeatability
Each time a particular file is hashed using the same algorithm, the exact same hash value will be produced.
Irreversibility
All hashing algorithms are one-way. Given a checksum value, it is infeasible to discover the password. In fact, none of the properties of the original message can be determined given the checksum value alone.
The algorithm was invented by:
Professor Ronald L. Rivest (born 1947, Schenectady, New York) is a cryptographer, and is the Viterbi Professor of Computer Science at MIT's Department of Electrical Engineering and Computer Science. He is most celebrated for his work on public-key encryption with Len Adleman and Adi Shamir, specifically the RSA algorithm, for which they won the 2002 ACM Turing Award.
Simple Code for Android:

public static final String md5Digest(final String text)
{
     try
     {
           // Create MD5 Hash
           MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
           digest.update(text.getBytes());
           byte messageDigest[] = digest.digest();

           // Create Hex String
           StringBuffer hexString = new StringBuffer();
           int messageDigestLenght = messageDigest.length;
           for (int i = 0; i < messageDigestLenght; i++)
           {
                String hashedData = Integer.toHexString(0xFF & messageDigest[i]);
                while (hashedData.length() < 2)
                     hashedData = "0" + hashedData;
                hexString.append(hashedData);
           }
           return hexString.toString();

     } catch (NoSuchAlgorithmException e)
     {
           e.printStackTrace();
     }
     return ""; // if text is null then return nothing
}


Tuesday, September 20, 2011

How to Change Tab Name from Activity in Android

Tabs in the Android work with TabWidgets.
Contained in the tabwidget are relative layouts for each of your tabs which each contain an imageview and a textview.
Tab index will start from 0 and to access the Tab Contents use the following steps.
For Example. if you want to access title of tab
mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title);

the above statement will provide the view (TextView) at this position.

change the text of Tab

TextView v = ((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title));


v.setText("My New Title");


Congratulations.
Your text of tab is changed.


Google+