Hoc Gioi Toan

Saturday, June 9, 2012

Kết nối webservice in android

Kết nối webservice C# in android sử dung ksoap
Source
Download
Webservice các bạn xem code rồi tạo database cho nó nha đơn giản thôi.

20 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 1.Trước tiên bạn tạo webservice chạy test bằng C# xem ok chưa nếu ok chuyển sang b2
    2.để kết nối webservice với android trong vd trên bạn fai down ksoap2...........jar về (cái này lên mang search down)
    3.down ksoap2 về rồi thì hãy chọn project của bạn chuôt fai chọn properties chọn java build path và bạn chỉnh lại đường dẫn cho file ksoap2 mà bạn đã down về.
    4. bạn chạy xem nó láy được chưa.
    5. nếu chưa bạn hãy chạy debug xem bị sai ở đâu rồi mới sửa tiếp
    6. debug = cách nhấn F11 chạy ché độ debug(ko chi c# cú đặt break point là ok) cái này fai chọn tưng ché độ
    f6 chạy từng dòng
    f5 chạy vào trong hàm
    f8 chạy qua luôn.
    bạn thử xem có gì liên hên lại. ok chú bạn may mắn lần sau.

    ReplyDelete
  3. anh ơi anh rảnh không e nhờ a 1 tẹo đc k ạ

    ReplyDelete
    Replies
    1. vầng , tình hình là ntn ạ , e làm 1 con service và e đưa csdl lên bây h e gọi nó về e làm theo cách trên mạng , cái đó cũng gân như của anh , nhưng k hiểu sao khi e làm xong e chạy cái app của e thì bị out ra ạ
      package com.example.webservice2;
      import org.ksoap2.SoapEnvelope;
      import org.ksoap2.serialization.SoapObject;
      import org.ksoap2.serialization.SoapPrimitive;
      import org.ksoap2.serialization.SoapSerializationEnvelope;
      import org.ksoap2.transport.AndroidHttpTransport;
      ;
      public class phim {
      String Usercode;
      String Firtsname;
      @SuppressWarnings("null")
      public phim getallphim() {
      final String SOAP_ACTION = "http://tempuri.org/KQHT";
      final String METOHD_NAME = "KQHT";
      final String NAMESPACE = "http://tempuri.org/";
      final String URL = "http://qlcl.vnkweb.com/Examview.asmx?WSDL";
      SoapObject table = null;
      SoapObject client = null;
      SoapObject tableRow = null;
      SoapObject responseBody = null;
      @SuppressWarnings("unused")
      AndroidHttpTransport transport = null;
      SoapSerializationEnvelope sse = null;
      sse = new SoapSerializationEnvelope(SoapEnvelope.VER11);
      sse.addMapping(NAMESPACE, "phim", this.getClass());
      sse.dotNet = true;
      AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
      URL);
      phim setphim = new phim();
      try {
      client = new SoapObject(NAMESPACE, METOHD_NAME);
      sse.setOutputSoapObject(client);
      sse.bodyOut = client;
      androidHttpTransport.call(SOAP_ACTION, sse);
      responseBody = (SoapObject) sse.getResponse();
      responseBody = (SoapObject) responseBody.getProperty(1);
      table = (SoapObject) table.getProperty(0);
      tableRow = (SoapObject) table.getProperty(0);
      setphim.Usercode = tableRow.getProperty("Usercode").toString();
      setphim.Firtsname = tableRow.getProperty("Firtsname").toString();
      return setphim;
      } catch (Exception e) {
      setphim.Usercode = e.toString();
      setphim.Firtsname = e.toString();
      return setphim;
      }
      }
      }

      file e code ạ
      https://www.dropbox.com/s/v2ln3kee3c7nlsm/webservice.rar

      Delete
    2. code ban down ve ko dc. ban xem lai co gi minh get ve kiem tra xem. Hoac ban fai post Ex len de check .

      Delete
    3. bạn tải lại xem giúp mình nhé
      https://www.dropbox.com/s/ugv7jyjyj9284lw/webser.rar
      file thư viện
      https://www.dropbox.com/s/ugv7jyjyj9284lw/webser.rar
      tks bạn nhiều nhé

      Delete
    4. link media : nếu cậu k tải đc ở dropbox
      http://www.mediafire.com/download/g7w65b7ioh0hm8h/Desktop.rar

      Delete
  4. mình nói qua về con service kia của mình , mình đã cho câu truy vấn select*from bang where masv="" rồi bạn à ,

    ReplyDelete
  5. Ve co ban la source cua ban ko chay dc nha:
    Sau khi xem qua thi co mot so van de nhu sau:
    1, ban fai copy file ksoap2 vao thu muc libs va reference toi no, dong thoi cho no do uu tien cao nhat.
    2, Cai webservice select no se return ve 1 dataset ban tham khao code o day ma sua lai.
    String NAMESPACE="http://tempuri.org/";
    String METHOD_NAME="getListStudent";
    String SOAP_ACTIONS="http://tempuri.org/getListStudent";
    String URL="http://10.0.2.2:1057/WebSite2/Service.asmx";
    SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);
    SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet=true;
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidhttpTranport=new HttpTransportSE(URL);
    try {
    androidhttpTranport.call(SOAP_ACTIONS, envelope);
    SoapObject reponse=(SoapObject)envelope.getResponse();
    SoapObject reponseDataset=(SoapObject)reponse.getProperty(1);
    SoapObject reponseDataTable=(SoapObject)reponseDataset.getProperty(0);

    if(reponse!=null)
    {

    for(int i=0;i<reponseDataTable.getPropertyCount();i++)
    {
    SoapObject temp=(SoapObject)reponseDataTable.getProperty(i);
    student sv=new student();
    sv.id=temp.getProperty(0).toString();
    sv.masv=temp.getProperty(1).toString();
    sv.hoten=temp.getProperty(2).toString();
    sv.lop=temp.getProperty(3).toString();
    myadapter.add(sv);

    }
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (XmlPullParserException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    ReplyDelete
  6. bạn có thể hướng dẫn kĩ mình cách lấy đường dẫn
    String URL="http://10.0.2.2:1057/WebSite2/Service.asmx";
    này k
    vì đường dẫn service của mình trên mạng nó k như thế này

    ReplyDelete
  7. bạn có thể tải code về sửa giúp mình đc k , bạn nói chung chung quá , mình xem code nhiều lúc k hieiẻu :'( t mới học nên hơi kém mong cậu thông cảm , giúp t nhé , t đang làm để làm báo cáo , hôm nay mà không xong là tớ out :'(

    ReplyDelete
  8. ok, 1 card vietel 50 nhan tin cho nguoi yeu. bat teamviewer len.

    ReplyDelete
  9. hiện tai thì mình chưa có tiền nhưng lúc có chắc chắn mình sẽ đưa bạn , oke đã là đàn ông , nói là sẽ làm oke bạn
    169 191 423
    2457

    ReplyDelete
  10. bạn cứ tải code của mình về làm nhé , , về thẻ thì oke có tiền mình đưa bạn ngay , bây h mình bận tí lên k bật được máy tình , oke ban tks bạn rất nhiều

    ReplyDelete
  11. Bạn ơi vẫn không được , t test thử trên máy thật rồi bạn à

    ReplyDelete
  12. Bạn ơi bạn có thể làm cho mình bài này đc k , tải code của t về làm cũng đc hay cụa làm mới cũng đc miễn sao search đc là được , oke mình đang rất cần cái này cậu à

    ReplyDelete
  13. Source nay minh chay tren may minh thay ok roi:
    package com.dt.test.testservice;

    import java.io.IOException;
    import java.util.ArrayList;

    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;
    import org.xmlpull.v1.XmlPullParserException;

    import android.os.Handler;

    public class phim {
    String Usercode;
    String Firtsname;
    ArrayList sdtuyen = new ArrayList();

    Handler hander;

    public void getallphim() {
    hander = new Handler();
    Thread th = new Thread(new Runnable() {

    @Override
    public void run() {
    // TODO Auto-generated method stub
    final String SOAP_ACTIONS = "http://tempuri.org/KQHT";
    final String METOHD_NAME = "KQHT";
    final String NAMESPACE = "http://tempuri.org/";
    final String URL = "http://qlcl.vnkweb.com/Examview.asmx";
    SoapObject request = new SoapObject(NAMESPACE, METOHD_NAME);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11);
    envelope.dotNet = true;
    request.addProperty("UserCode", "1");
    // request.addProperty("faultactor", "a");
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidhttpTranport = new HttpTransportSE(URL);
    try {
    androidhttpTranport.call(SOAP_ACTIONS, envelope);
    SoapObject reponse = (SoapObject) envelope.getResponse();
    SoapObject reponseDataset = (SoapObject) reponse
    .getProperty(1);
    if (reponseDataset.getPropertyCount() > 0) {
    SoapObject reponseDataTable = (SoapObject) reponseDataset
    .getProperty(0);

    if (reponse != null) {

    for (int i = 0; i < reponseDataTable
    .getPropertyCount(); i++) {
    SoapObject temp = (SoapObject) reponseDataTable
    .getProperty(i);
    // cho nay lay data cua tung row
    // student sv=new student();
    // sv.id=temp.getProperty(0).toString();
    // sv.masv=temp.getProperty(1).toString();
    // sv.hoten=temp.getProperty(2).toString();
    // sv.lop=temp.getProperty(3).toString();
    // myadapter.add(sv);

    }
    hander.post(new Runnable() {

    @Override
    public void run() {
    // TODO Auto-generated method stub
    // Sau khi lay xong lam gi do de thay doi tren giao dien
    }
    });
    }
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (XmlPullParserException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    });
    th.start();

    //return sdtuyen;

    }

    }

    ReplyDelete
  14. mình gà quá mình vẫn chưa làm ra :( , bạn làm chi tiết xong đóng cái file của bạn làm lại xong gửi cho mình đc k cái project ý
    ở csdl của mình có các cột là usercode , firstname,lastname,classname,modulesname,noid,dataexam,examtimename,examzo
    omname,costs,testid,fee, status .
    service :http://qlcl.vnkweb.com/Examview.asmx?WSDL

    ReplyDelete
  15. bạn có thể làm để nó search đc luôn cho mình nhé, bạn tư duy nhanh làm đc chứ mình gà quá , k thể nghĩ đc :'(
    tức là lấy đc csdl về điện thoại nhé

    ReplyDelete