Header Ads

[Android] Ksoap - Webservice

1,    Tạo project tên soap_demo1. (Nhớ tạo trên máy ảo 1.6 cho đơn giản)

2   2,    Tạo thư mục mới tên “libs” trong thư mục gốc của project.
     3. Truy cập địa chỉ (hoặc lên google search cho lẹ)
và download file "ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar" . Bỏ file vừa download vào thư mục “libs” vừa tạo.
        4.     Click phải project chọn Build Path-> “Configue Build Path….”

         5.Trong hộp thoại “Properties” chọn tab “Libraries” chọn nút “Add JARs…” chọn đến file “ksoap2…” vừa mới chép vào rồi OK -> OK.



     6.Dể ý thấy hình của file trong thư mục lib có thêm cái hình icon nhỏ ở góc.



     7.  Mở file layout thiết kế giao diện có 2 TextView làm nhãn, 1 EditText để nhập độ F, 1 EditText để nhập độ C, 1 button để đổi “Độ C sang độ F” , 1 button để đổi “Độ F sang độ C” và 1 button để “Xóa”:


    8.Truy cập địa chỉ http://www.w3schools.com/webservices/tempconvert.asmx nhấn vào hàm đầu tiên (CelsiusToFahrenheit) kéo xuống bên dưới và phân tích cú pháp.


Cho CelsiusToFahrenheit:
  1.     SOAP_ACTION = "http://www.w3schools.com/webservices/CelsiusToFahrenheit";
  2.     NAMESPACE = "http://www.w3schools.com/webservices/"; 
  3.     METHOD_NAME = "CelsiusToFahrenheit";
  4.     URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
Cho FahrenheitToCelsius:
  1.     SOAP_ACTION = "http://www.w3schools.com/webservices/FahrenheitToCelsius";
  2.     NAMESPACE = "http://www.w3schools.com/webservices/";
  3.     METHOD_NAME = " FahrenheitToCelsius ";
  4.     URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";


1    9. Mở file manifest và khai báo quyền internet
    <uses-permission android:name="android.permission.INTERNET"/>
  
           10: Trong file java chính, khai báo các biến, ánh xạ chúng.
   EditText etdoC,etdoF;
   Button btFtoC, btCtoF,btclear;
3     11: Khai báo các biến chuỗi để chuẩn bị.
    private static String SOAP_ACTION1 = "http://www.w3schools.com/webservices/FahrenheitToCelsius";
    private static String SOAP_ACTION2 = "http://www.w3schools.com/webservices/CelsiusToFahrenheit";
    private static String NAMESPACE = "http://www.w3schools.com/webservices/";
    private static String METHOD_NAME1 = "FahrenheitToCelsius";
    private static String METHOD_NAME2 = "CelsiusToFahrenheit";
    private static String URL =
                 "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
       12: Bắt sự kiện onClick cho nút btFtoC. Trong hàm onClick của nó bắt đầu viết như bên dưới gồm khởi tạo SoapObject, gán dữ liệu vào, khai báo envelope, và gán outputSoapObject cho envelope:
          //khoi tao soap request va param
          SoapObject request=new SoapObject(NAMESPACE,METHOD_NAME1);
         
          //dua du lieu vao cho request
          request.addProperty("Fahrenheit",etdoF.getText().toString());
         
          //khai bao Envelope va dua vao version cua SOAP
          SoapSerializationEnvelope envelope=
                        new SoapSerializationEnvelope(SoapEnvelope.VER11);
          envelope.setOutputSoapObject(request);
          envelope.dotNet=true;
5      13: Tiếp theo khai báo Transport và đưa vào URL. Sau đó gọi hàm call để gọi service và truyền vào action và envelope.
           //khoi tao httptransport
           HttpTransportSE httptransport=new HttpTransportSE(URL);
          
           //goi webservice
           try {
                  httptransport.call( SOAP_ACTION1, envelope);
           } catch (Exception e) {
                  Log.d("loi"," "+ e.toString());
           }
        14: Cuối cùng lấy dữ liệu về và gán lên EditText.
          //lay du lieu
          SoapObject ketqua=(SoapObject)envelope.bodyIn;
          if(ketqua!=null)
          {
                 etdoC.setText(ketqua.getProperty(0).toString());
          }
          else
          {
                 Toast.makeText(getApplicationContext(), "khong co ket qua", Toast.LENGTH_SHORT).show();
          }
        15: Chạy chương trình (nhớ phải có internet). Nhập vào 1 con số độ F, nhấn nút “Đổi F sang C” để thấy kết quả.


   
       16.   Viết tiếp cho nút “Đổi C sang F”. 
       17.   Nâng cấp version lên 4.0 chạy thử để thấy lỗi. Sửa lỗi để chương trình có thể chạy tốt trên các version cao.
Download full source code Click Here 





No comments:

Powered by Blogger.