Yuk Kenalan dan Pahami HTTP Client di VB.Net

 

Yuk kenalan dan pahami HTTP Client di VB.Net


Yuk Kenalan dan Pahami HTTP Client di VB.Net - Yosh selamat pagi, siang, sore dan malam sobs-sobs sekalian, semoga kalian dalam keadaan sehat walafiat sehingga bisa menikmati kopi panas dengan gorengan yang gurih-gurih nyoiii, Mantabs

Pada kesempatan kali ini gua akan share seputar VB.Net lagi. ada pun topiknya kali ini adalah HttpClient sobs. dan alasan gua kenapa share karena ini yang gua pakai pada saat membuat aplikasi desktop dengan VB.Net. dimana skenarionya gua tidak menggunakan mysql client di dalam aplikasi desktop gua sobs, kenapa ? karena didalam sistem biasanya gua kerjakan menggunakan mekanisme API sobs, karena biasanya sistem yang gua kerjakaan akan terintegrasi antara Desktop App dan Mobile App.



Oke langsung aja kita gas ya sobs keburu kopi dingin dan mood untuk menulis juga meluntur. pertamax-tamax kita kenalan dengan http client di vb.net, disini gua akan jelaskan menurut bahasa gua jadi ya mohon maaf dan harap maklum sobs.


1.    Pengertian HttpClient dan Fiturnya di VB.Net

1.1    Pengertian HttpClient

Jadi begini sobs, HttpClient adalah sebuah class di vb.net. fungsi dari class ini adalah untuk berkomunikasi dengan server melalui protok HTTP. dengan HttpClient kita bisa mengirimkan request serta menerima response dari server.

1.2    Fitur HttpClient

Jadi bisa kita ambil garis besarnya sobs bahwa class HttpClient di vb.net ini mempunyai fitur kurang lebih seperti dibawah ini sobs :
  • Mengambil data dari server (Misalnya API)
  • Mengirimkan data ke server (Misalnya pengisian form)
  • Mendukung berbagai macam metode request (GET, POST, PUT, DELETE)
  • Mendukung proses Asynchronous dan Synchronous.
dan biasanya fitur-fitur tersebut diperuntukan untuk mengakses resource dari layanan web (API). resource itu dapat berupa JSON. XML dan sebagainya sobs.

2.    Fungsi atau kegunaan HttpClient

Sebelum kita lebih jauh kita akan runtut terlebih dahulu sobs, fungsi dari http client ini. oh iya http client ini biasanya juga tersedia di bahasa pemrograman lainnya. lalu apa sih fungsi atau kegunaan http client ini secara general (umum) :
  • Mengambil data dari API : Misalkan sobs-sobs ingin melihat daftar produk dari sebuah toko online didalam aplikasi mobile, maka dibalik layar didalam aplikasi mobile tersebut melakukan request dengan http client ke API.
  • Mengirim data ke Server : Misalkan sobs-sobs ingin mengisi ulasan dari sebuah produk toko online, maka data-data yang sobs-sobs isi akan di kirimkan ke server.
  • Mengautentifikasi pengguna : yaitu seperti fitur login dengan menggunakan token API, contoh login didalam aplikasi mobile sobs
Kira-kira seperti itu sobs kurang lebih fungsi dari si HttpClient ini. lanjut gua akan berikan contoh skenario dari penggunaan HttpClient ini di vb.net.

3.    Skema Http Client di VB.Net

Untuk penggunaan HttpClient di vb.net skemanya akan seperti dibawah ini sobs : 



Silahkan disimak sobs diagram flow diatas. next pembahasan kita masuk ke contoh penggunaannya

4.    Contoh Penggunaan Http Client di VB.Net

Gua akan buat beberapa contoh sobs, contoh ini terdiri dari proses Asnychronous dan Synchronous.

4.1    Get (Ambil Data)

Untuk contoh Get disini gua akan menggunakan alamat url dari reqres.in  yaitu https://reqres.in/api/users/2.

1.    Asynchronous (Async Await)

Contoh yang pertama adalah proses Async, untuk contoh kode seperti dibawah ini sobs :



Imports System.Net.Http
Imports System.Threading.Tasks

Module Program

	Async Function getDataAsync() as Task
		Try
			'Buat Objek dari class HttpClient
			Dim client as new HttpClient()
			Dim url as String = "https://reqres.in/api/users/2"

			'Buat variabel untuk http response
			Dim response as HttpResponseMessage = Await client.getAsync(url)

			'Cek jika request berhasil atau tidak
			If response.IsSuccessStatusCode Then
				'Buat variabel hasil request HttpResponse, variabel berupa string 
				Dim result as String = Await response.Content.ReadAsStringAsync()
				Console.WriteLine(result)
			Else
				Console.WriteLine("Request gagal sobs : " & response.StatusCode.ToString())
			End If
		Catch ex As Exception
			Console.WriteLine(ex.Message)
		End Try
	End Function


	Sub Main(args As String())

		getDataAsync().Wait()

		Console.WriteLine("Program dijalankan ....")
	End Sub

End Module


Jika dieksekusi tampilanya seperti ini sobs : 


Oh Iya disini gua anggap sobs-sobs sudah bisa membedakan proses Asynchronous dan Synchronous ya.

 

2.  Synchronous (Langsung menunggu hasilnya)

Berikut ini adalah contoh dari proses sync (tidak direkomendasikan jika sobs-sobs membangun aplikasi berbasis UI, karena dapat menghambat proses render UI nya sobs), ya ini buat pengetahuan aja ya sobs 


Imports System.Net.Http
Imports System.Threading.Tasks

Module Program

	Sub Main(args As String())

		Try
			Dim client As New HttpClient
			Dim url As String = "https://reqres.in/api/users?page=2"
			Dim response As HttpResponseMessage = client.GetAsync(url).Result
			If response.IsSuccessStatusCode Then
				Dim result As String = response.Content.ReadAsStringAsync().Result
				Console.WriteLine(result)
			Else
				Console.WriteLine("Request Failed : " & response.StatusCode.ToString())
			End If
		Catch ex As Exception
			Console.WriteLine("Error : " & ex.Message)
		End Try
		Console.WriteLine("Program dijalankan sync ....")
	End Sub

End Module


oke sekarang kita beranjak ke contoh selanjutnya.


4.2    Post (Kirim Data)

Sekarang kita beranjak ke contoh post request sobs-sobs, untuk contoh yang post request ini gua akan berikan contoh hanya berupa async saja dengan beberapa contoh.

1.    Post Request (JSON)

Contoh pertama adalah request berupa json sobs. dimana skemanya ada login jadi input nya yaitu email dan password sobs.


Imports System.Net.Http
Imports System.Threading.Tasks
Imports System.Text

Module Program
	Async Function postDataAsync() As Task
		Try
			Dim client As New HttpClient()

			'url contoh untuk login
			Dim url = "https://reqres.in/api/login"

			'json data
			Dim email As String = "eve.holt@reqres.in"
			Dim password As String = "cityslicka"
			Dim jsonData As String = $"{{""email"": ""{email}"", ""password"": ""{password}""}}"

			Dim content As New StringContent(jsonData, Encoding.UTF8, "application/json")

			Dim response As HttpResponseMessage = Await client.PostAsync(url, content)

			If response.IsSuccessStatusCode Then
				Dim result As String = Await response.Content.ReadAsStringAsync()
				Console.WriteLine(result)
			Else
				Console.WriteLine("Request failed : " & response.StatusCode.ToString())
			End If

		Catch ex As Exception
			Console.WriteLine("Error : " & ex.Message)
		End Try
	End Function


	Sub Main(args As String())

		postDataAsync.Wait()

		Console.WriteLine("Program berjalan ...")
	End Sub

End Module


dan jika dieksekusi maka hasilnya seperti dibawah ini sobs : 


Jadi jika berhasil login dan parameter email dan passwordnya maka kita akan mendapatkan tokennya sobs seperti diatas. silahkan sobs-sobs buat jika salah dengan mengganti email atau passwordnya.

  

2.    Post Request (Form url encode)

Contoh kedua kali ini akan coba dengan mengirimkan request berupa form url encode. berikut ini sobs contohnya :


Imports System.Net.Http
Imports System.Threading.Tasks
Imports System.Text

Module Program
	Async Function postDataAsync() As Task
		Try
			Dim client As New HttpClient()

			'url contoh untuk login
			Dim url = "https://reqres.in/api/login"

			Dim formData As New Dictionary(Of String, String) From {{"email", "eve.holt@reqres.in"}, {"password", "cityslicka"}}
			Dim content As New FormUrlEncodedContent(formData)

			Dim response As HttpResponseMessage = Await client.PostAsync(url, content)

			If response.IsSuccessStatusCode Then
				Dim result As String = Await response.Content.ReadAsStringAsync()
				Console.WriteLine(result)
			Else
				Console.WriteLine("Request Failed : " & response.StatusCode.ToString())
			End If

		Catch ex As Exception
			Console.WriteLine("Error : " & ex.Message)
		End Try
	End Function


	Sub Main(args As String())

		postDataAsync.Wait()

		Console.WriteLine("Program berjalan ...")
	End Sub

End Module


Contoh diatas masih sama dalam skenario login sobs, dimana kali ini data yang dikirimkan bukan berupa json melainkan form url encode. sekarang kita ke contoh lainnya post lainnya sobs.


3.    Post Request (Upload file)

Sekarang gua akan berikan contoh upload file sobs-sobs. adapun kode seperti dibawah ini : 


Imports System.Net.Http
Imports System.Threading.Tasks
Imports System.Text
Imports System.IO

Module Program
	Async Function uploadFileAsync() As Task
		Try
			Dim client As New HttpClient()

			'url contoh untuk mencoba upload file
			Dim url = "https://api.escuelajs.co/api/v1/files/upload"


			'Sobs harus menulis full pathnya seperti C:\nama-folder\nama-file
			Dim filePath = "C:\Users\ELITEBOOK\Desktop\vb_console\MyVbApp\test.png"

			Dim content As New MultipartFormDataContent()

			Dim fileBytes As Byte() = File.ReadAllBytes(filePath)

			Dim fileContent As New ByteArrayContent(fileBytes)

			fileContent.Headers.ContentType = New System.Net.Http.Headers.MediaTypeHeaderValue("image/png")

			content.Add(fileContent, "file", Path.GetFileName(filePath))

			Dim response As HttpResponseMessage = Await client.PostAsync(url, content)

			If response.IsSuccessStatusCode Then
				Dim result = Await response.Content.ReadAsStringAsync()
				Console.WriteLine(result)
			Else
				Console.WriteLine("Request failed : " & response.StatusCode.ToString())
			End If

		Catch ex As Exception
			Console.WriteLine("Error : " & ex.Message)
		End Try
	End Function


	Sub Main(args As String())

		uploadFileAsync.Wait()

		Console.WriteLine("Program berjalan ...")
	End Sub

End Module


Jika berhasil maka tampilannya seperti dibawah ini sobs : 


Untuk memastikannya sobs-sobs bisa copy url locationnya dan lihat apakah file yang diupload benar adanya, disini gua juga sudah memastika dan ternyata file yang gua upload benar adanya. 

 


4.3    DELETE, PUT

Untuk contoh put dan delete sebenarnya sama saja sobs seperti get atau pun post hanya yang membedekan penggunaan metodenya.

1.    PUT

Untuk put seperti dibawah ini :


Dim response As HttpResponseMessage = Await client.PutAsync(url, content)

 

menggunakan metode PutAsync


2.    DELETE

dan untuk delete seperti dibawah ini sobs :


Dim response As HttpResponseMessage = Await client.DeleteAsync(url)

Hanya saja untuk metode delete kita hanya memasukan satu parameter saja sobs yaitu urlnya saja.


4.4    Menambahkan Header Authentifikasi

Contoh selanjutnya adalah menambahkan header untuk proses authentifikasi, untuk contohnya seperti dibawah ini sobs : 

Imports System.Net.Http
Imports System.Threading.Tasks
Imports System.Text
Imports System.IO

Module Program

	Sub Main(args As String())

		Dim client As New HttpClient()
		Dim url As String = "https://api.contoh.com/data"

		' Menambahkan header Authorization (Bearer Token)
		client.DefaultRequestHeaders.Authorization = New System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "access_token_sobs_sobs")

		Dim response As HttpResponseMessage = client.GetAsync(url).Result

		If response.IsSuccessStatusCode Then
			Dim result As String = response.Content.ReadAsStringAsync().Result
			Console.WriteLine(result)
		Else
			Console.WriteLine("Request failed: " & response.StatusCode.ToString())
		End If

		Console.WriteLine("Program berjalan ...")
	End Sub

End Module



untuk contoh penggunaan dari HttpClient sudah sobs karena kopi mau habis. hehe selanjutnya kita masuk ke kesimpulan

5.    Kesimpulan

Setelah pembahasan-pembahasan diatas kita bisa ambil kesimpulan tentang HttpClient ini diantaranya :

1.   HttpClient digunakan untuk melakukan request HTTP, jenis HTTP Requestnya bisa berupa (GET, POST, PUT, DELETE)
 
2.    Bisa digunakan untuk mengirim teks, Json atau pun File sobs.
 
3.    HttpClient ini mendukung proses secara async dan sync.
 
4.    Http Client ini bisa dikombinasikan dengan Header, Parameter, Timeout dan juga Proxy sobs-sobs.

 

Jadi begitu sobs-sobs kesimpulannya, jadi setelah kita tau kita bisa menggunakan HttpClient ini untuk case dimana kita harus berinteraksi dengan API.

Itu mungkin penjelasan singkat gua tentang HttpClient di VB.Net jika ada kurang jelas silahkan sobs-sobs mencari refrensi ditempat lain.


Sekian & Terimakasih sobs-sobs.


See you next time.

Posting Komentar untuk "Yuk Kenalan dan Pahami HTTP Client di VB.Net"

www.domainesia.com
Web Hosting
www.domainesia.com