Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
JSON HTTP POST Request In Visual Basic .NET
'Install Newtonsoft.json
'-----------------------
'
'PM> Install-Package Newtonsoft.Json -Version 6.0.8
'Sample Usage
'------------
'Dim jsonPost As New JsonPost("http://192.168.254.104:8000")
'Dim dictData As New Dictionary(Of String, Object)
'dictData.Add("test_key", "test_value")
'jsonPost.postData(dictData)
Imports Newtonsoft.Json
Imports System.Net
Imports System.Text
Public Class JsonPost
Private urlToPost As String = ""
Public Sub New(ByVal urlToPost As String)
Me.urlToPost = urlToPost
End Sub
Public Function postData(ByVal dictData As Dictionary(Of String, Object)) As Boolean
Dim webClient As New WebClient()
Dim resByte As Byte()
Dim resString As String
Dim reqString() As Byte
Try
webClient.Headers("content-type") = "application/json"
reqString = Encoding.Default.GetBytes(JsonConvert.SerializeObject(dictData, Formatting.Indented))
resByte = webClient.UploadData(Me.urlToPost, "post", reqString)
resString = Encoding.Default.GetString(resByte)
Console.WriteLine(resString)
webClient.Dispose()
Return True
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Return False
End Function
End Class
@Willy-Kimura

This comment has been minimized.

Copy link

@Willy-Kimura Willy-Kimura commented May 29, 2017

Thanks so much! Keep up the good work.

@jezile

This comment has been minimized.

Copy link

@jezile jezile commented Aug 10, 2017

Awesome! Thanks

@fersrc

This comment has been minimized.

Copy link

@fersrc fersrc commented Mar 1, 2018

This example return the body of the response, what can i do if i also want the head of the response?

@gabrimen

This comment has been minimized.

Copy link

@gabrimen gabrimen commented Mar 7, 2018

Thank you so much!!!!!!!! Finally, all samples i found were missing something for the API i am trying, this worked beautiful

@markazali

This comment has been minimized.

Copy link

@markazali markazali commented Mar 28, 2018

I really appreciate this. Thanks

@Kenshin84

This comment has been minimized.

Copy link

@Kenshin84 Kenshin84 commented Nov 13, 2018

Thank you very much! i was updating my script from python to vb and this help me very well.

@StudentProjectGuide

This comment has been minimized.

Copy link

@StudentProjectGuide StudentProjectGuide commented Feb 27, 2019

Good work dude. THanks a lot

@DragonflyNet67

This comment has been minimized.

Copy link

@DragonflyNet67 DragonflyNet67 commented Mar 4, 2019

Great work, thanks a lot. Solved a problem for me immediately where I spent hours trying to do a post request with json post data and additional headers.

@alazimariff

This comment has been minimized.

Copy link

@alazimariff alazimariff commented Oct 9, 2019

i encountered a problem to using button to post the json to the website. this curl post can manage to post data to the website.

curl -X POST --header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'apiKey: YOUR API KEY HERE'
-d '{
"device_developer_id": "deviceDefault@FAVORIOT",
"data": { "temperature": "31","humidity": "70"}
}'
'https://apiv2.favoriot.com/v2/streams'

However in vb.net is :

'Install Newtonsoft.json
'-----------------------
'
'PM> Install-Package Newtonsoft.Json -Version 6.0.8

'Sample Usage
'------------

'Dim jsonPost As New JsonPost("http://192.168.254.104:8000")
'Dim dictData As New Dictionary(Of String, Object)
'dictData.Add("test_key", "test_value")
'jsonPost.postData(dictData)

' favoriot part
' ============
' link : https://apiv2.favoriot.com/v2/streams

Imports Newtonsoft.Json
Imports System.Net
Imports System.Text

Public Class Form1
Private urlToPost As String = ""
Private apikey_favoriot As String = "YOUR API KEY HERE"

Public Sub New(ByVal urlToPost As String)
    Me.urlToPost = urlToPost
End Sub

Public Function postData(ByVal dictData As Dictionary(Of String, Object)) As Boolean
    Dim webClient As New WebClient()
    Dim resByte As Byte()
    Dim resString As String
    Dim reqString() As Byte

    Try
        webClient.Headers("content-type") = "application/json"
        webClient.Headers.Add("apikey", apikey_favoriot)
        reqString = Encoding.Default.GetBytes(JsonConvert.SerializeObject(dictData, Formatting.Indented))
        resByte = webClient.UploadData(Me.urlToPost, "post", reqString)
        resString = Encoding.Default.GetString(resByte)
        Console.WriteLine(resString)
        webClient.Dispose()
        Return True
    Catch ex As Exception
        Console.WriteLine(ex.Message)
    End Try
    Return False
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Form1 As New Form1("http://192.168.254.104:8000")
    Dim dictData As New Dictionary(Of String, Object)
    dictData.Add("device_developer_id", "deviceDefault@FAVORIOT")
    dictData.Add("data", "temperature : 31")
    Form1.postData(dictData)
End Sub

End Class

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment