json - VB.NET JSON POST 请求中的错误 - 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 代码,我遇到了上述错误。
我错过了什么或做错了什么吗?
请帮忙。
谢谢
[以下在邮递员中工作,我在 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"}
推荐阅读
- javascript - 使用 AJAX(短代码)的 Live WooCommerce 产品搜索表单
- node.js - 仅当 mongodb 中的 operationType 为 'update' 时才过滤
- vba - 查找并替换为列表元素
- tensorflow - Tensorflow:Caffe 中 Tensorflow 的密集层相当于什么?
- angular - 如何将 Angular Material Datepicker 数字更改为阿拉伯/波斯字符?
- django - 更新某个模型时如何在另一个模型中获取或创建对象?
- r - 如何在变异的“ifelse”语句中使用“and”语句?
- mysql - LeetCode 1179:重新格式化部门表(MySQL)
- python - Matplotlib - ValueError:子图的非法参数
- python-3.x - python pandas,python Dask在第一次加载时比julia CSV快吗?