Cara Memakai Okhttp Di Android Studio

Bismillaahirrohmaanirrohiim…


Kali ini, aku ingin menciptakan tutorial sederhana cara gampang memakai OkHTTP di android studio.


OkHTTP merupakan library yang dipakai di android studio untuk melaksanakan request ke suatu URL.

Jika memakai PHP, kita dapat pakai PHP CURL. Di j4vascript, kita dapat pakai ajax.


kenapa menentukan OkHTTP, padahal berbagai library semacamnya, menyerupai volley, retrofit, loopj, dll.


Ini duduk perkara selera, namun aku sendiri mencicipi jikalau OkHTTP terasa lebih stabil, lebih ringan, dan lebih gampang dibandingkan dengan yang lain.


Pada referensi kali ini, kita akan menciptakan request dengan metode synchronous dan asynchronous.


Sederhananya, request synchronous dijalankan di agenda dan tidak akan menjalankan instruksi setelahnya sebelum request telah selesai.

Sebaliknya, request asynchronous dijalankan di background, sehingga instruksi setelahnya akan eksklusif dihukum tanpa menunggu request selesai.


Masing-masing metode memiliki kelebihan dan kekurangan, kita boleh pakai sesuai kebutuhan.


Oke eksklusif saja, pertama buat project gres di android studio


Isikan nama “Belajar OkHTTP” kemudian next

Pilih minimum SDK API 17, Android 4.2 Jelly bean ato versi berapa aja sesuai keinginan, kemudian next

Pilih empty activity kemudian next

Biarkan nilai default “MainActivity” kemudian finish

Tunggu hingga selesai menyiapkan project untuk kita.


Buka file build.gradle (Module: app)


Tambahkan instruksi dibawah ini dibagian dependencies


implementation 'com.squareup.okhttp3:okhttp:3.11.0'

Sehingga risikonya kurang lebih menyerupai dibawah ini


dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
}

Kemudian klik “Sync Now” ada di link kanan atas. Tunggu hingga selesai sinkronisasinya.


Tambahkan instruksi permission dibawah ini di AndroidManifest.xml


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Edit activity_main.xml menyerupai dibawah ini


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Belajar OkHTTP"
android:textAlignment="center"
android:textSize="24sp" />

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="5dp"
android:background="#c0c0c0" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/buttonSync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="Synchronous" />

<Button
android:id="@+id/buttonAsync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="Asynchronous" />


</LinearLayout>


</LinearLayout>

Edit file MainActivity.j4va menyerupai di bawah ini


package com.rasupe.belajarokhttp;

import android.content.Context;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import j4va.io.IOException;
import j4va.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;

public class MainActivity extends AppCompatActivity {
private Button buttonSync, buttonAsync;
private Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

context = getApplicationContext();

buttonSync = findViewById(R.id.buttonSync);
buttonAsync = findViewById(R.id.buttonAsync);

buttonSync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
requestSync();
}
});
buttonAsync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
requestAsync();
}
});
}

private void requestSync() {
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT > 8) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(5, TimeUnit.SECONDS);
builder.readTimeout(5, TimeUnit.SECONDS);
builder.writeTimeout(5, TimeUnit.SECONDS);
OkHttpClient client = builder.build();

Request request = new Request.Builder()
//.url("https://publicobject.com/helloworld.txt")
.url("https://jsonplaceholder.typicode.com/todos/1")
.build();

try {
Response response = client.newCall(request).execute();
//response.body().string() dihentikan dipanggil 2x
String responseString = response.body().string();

Toast.makeText(this, responseString, Toast.LENGTH_SHORT).show();

} catch (IOException e) {
Toast.makeText(this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}

Toast.makeText(this, "OkHTTP requestSync", Toast.LENGTH_SHORT).show();

}

private void requestAsync() {
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT > 8) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(5, TimeUnit.SECONDS);
builder.readTimeout(5, TimeUnit.SECONDS);
builder.writeTimeout(5, TimeUnit.SECONDS);
OkHttpClient client = builder.build();

Request request = new Request.Builder()
//.url("https://publicobject.com/helloworld.txt")
.url("https://jsonplaceholder.typicode.com/todos/1")
.build();

client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("debuging", "Request Failed."+e.getMessage());
responseAsync("Request Failed."+e.getMessage());
e.printStackTrace();
}

@Override
public void onResponse(Call call, Response response) throws IOException {

try {
if (response.isSuccessful()) {
String responseString = response.body().string();

Log.d("debuging", responseString);
responseAsync(responseString);
} else {
Log.d("debuging", "Error "+ response);
responseAsync("Error "+ response);
}
} catch (IOException e) {
Log.d("debuging", "Exception caught : ", e);
responseAsync("Error "+ e.getMessage());
}
}
});
Toast.makeText(this, "OkHTTP requestAsync", Toast.LENGTH_SHORT).show();

}

private void responseAsync(final String responseStr) {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), responseStr, Toast.LENGTH_SHORT).show();
}
});
}
}

 


Silahkan di run


semoga tidak error 🙂


 aku ingin menciptakan tutorial sederhana cara gampang memakai  Cara memakai OkHTTP di android studio


Nah, cukup gampang bukan, cara memakai OkHTTP di android studio.


Jika ingin request menambahkan header dan metode POST dengan OkHTTP cukup mudah, perhatikan instruksi dibawah ini:


RequestBody requestBody = new FormBody.Builder()
.add("param1", "value1")
.add("param2", "value2")
.build();

Request request = new Request.Builder()
//.url("https://publicobject.com/helloworld.txt")
.url("https://jsonplaceholder.typicode.com/todos/1")
.post(requestBody)
.addHeader("Connection", "Keep-Alive")
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();

Demikian tutorial memakai OkHTTP di android studio dengan mudah.


Jika ada yang ingin disampaikan, silahkan tinggalkan di kolom komentar.


Terimakasih



Sumber https://rasupe.com

Mari berteman dengan saya

Follow my Instagram _yudha58

Subscribe to receive free email updates:

0 Response to "Cara Memakai Okhttp Di Android Studio"

Posting Komentar