簡體   English   中英

VB.NET JSON POST 請求中的錯誤 - HTTPWEBREQUEST

[英]Error in VB.NET JSON POST request - HTTPWEBREQUEST

我正在嘗試發布 json 請求如下。

我在最后一行收到錯誤。 最后一行顯示錯誤消息。

Dim myReq As HttpWebRequest
Dim myResp1 As HttpWebResponse

myReq = HttpWebRequest.Create("https://pro.mastersindia.co/oauth/access_token")
myReq.Method = "POST"
myReq.ContentType = "application/json"
myReq.Headers.Add("username", Service_Provider_Username)
myReq.Headers.Add("password", Service_Provider_Password)
myReq.Headers.Add("client_id", client_id)
myReq.Headers.Add("client_secret", client_secret)
myReq.Headers.Add("grant_type", "password")

Dim mystream As Stream = myReq.GetRequestStream
myResp = myReq.GetResponse  ---- here i am getting an error  {"The remote server returned an error: (400) Bad Request."} 

如果我通過 POSTMAN 將相同的 json 發送到相同的 url,那么我會得到響應。 但是通過 vb.net 代碼,我遇到了上述錯誤。

我錯過了什么或做錯了什么嗎?

請幫忙。

謝謝

[以下在 postman 中工作,我在 vb.net 中是否遺漏了什么] [在此處輸入圖像描述 ] 1


在此處輸入圖像描述

您的 POST 正文是空的,您應該將它們放入正文而不是標題。

有多種方法可以做到這一點,這里是一個例子。

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

    Public Class JSON_Post
        Public Property username As String
        Public Property password As String
        Public Property client_id As String
        Public Property client_secret As String
        Public Property grant_type As String
    End Class


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim myReq As HttpWebRequest = HttpWebRequest.Create("https://pro.mastersindia.co/oauth/access_token")
        myReq.Method = "POST"
        myReq.ContentType = "application/json"

        Dim NewData As New JSON_Post
        NewData.username = "Service_Provider_Username"
        NewData.password = "Service_Provider_Password"
        NewData.client_id = "client_id"
        NewData.client_secret = "client_secret"
        NewData.grant_type = "password"

        Dim PostString As String = JsonConvert.SerializeObject(NewData)
        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(PostString)
        myReq.ContentLength = byteArray.Length

        Dim dataStream As Stream = myReq.GetRequestStream()
        dataStream.Write(byteArray, 0, byteArray.Length)
        dataStream.Close() 'sends request

        Dim myResp As HttpWebResponse = myReq.GetResponse()

    End Sub

你的身體看起來像:

{"username":"Service_Provider_Username","password":"Service_Provider_Password","client_id":"client_id","client_secret":"client_secret","grant_type":"password"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM