Cara Membuat HTTP Server di Android Studio

Untuk membuat HTTP Server di Android anda bisa menggunakan salah satu komponen Java yaitu NanoHttpd.  Untuk menginstalnya tinggal menaruh script berikut di file build.gradle proyek android anda:


   compile group: 'org.nanohttpd', name: 'nanohttpd', version: '2.3.1'

Setelah itu buat class baru yang merupakan extend/turunan dari class dari NanoHttpd seperti berikut:


public class MyServer extends NanoHTTPD {
 private static MyServer myServer;
    private Context context;
protected MyServer(Context context,int port) {
        super(port);
       this.context=context;

    }
public static MyServer getInstance(Context context){
        if(myServer==null){
            myServer=new MyServer(context,MyStatic.getPort(context));
        }
        return myServer;
    }
public Response serve(IHTTPSession session) {
        String message="";
        String receiver="";
        String id="";
       String jsonresult="";
        try {
            session.parseBody(new HashMap());
            message=session.getParms().get("message");
            receiver=session.getParms().get("receiver");
            id=session.getParms().get("id");
       JSONObject jsonObject=new JSONObject();
           try {

            jsonObject.put("pesan",message );
            jsonObject.put("penerima",receiver);
            jsonObject.put("idpengirim",id);
            jsonresult=jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        } catch (IOException e) {
          e.printStackTrace();
        } catch (ResponseException e) {
            e.printStackTrace();
        }
    
        return newFixedLengthResponse(jsonresult);
    }
}

Agar server HTTP bisa berjalan di background anda bisa membuat Service terlebih dahulu seperti berikut:


public class MyService extends Service {
 public int onStartCommand(Intent intent, int flags, int startId) {
        
        try {
            MyServer.getInstance(this).start();
            
        } catch (IOException e) {
            e.printStackTrace();
        }

        return Service.START_STICKY;
    }
}

Jalankan Service tersebut misal saat button click di Activity:


public void onClick(View v) {
                Intent myintent=new Intent(MainActivity.this,MyService.class);
                startService(myintent);
                Toast.makeText(MainActivity.this,"Server HTTP Running",Toast.LENGTH_LONG).show();
               
            }

Untuk contoh sederhana anda bisa download di Github, sedangkan untuk contoh lengkap penerapan server HTTP di Android anda bisa melihat aplikasi BencesSms Gateway yang dibuat penulis.

anasmbahdien

Seorang programmer yang menguasai bahasa pemograman Delphi, VB.NET, PHP dan Android. Untuk hasil karya kunjungi mogotekno.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *