【发布时间】:2018-10-16 22:21:48
【问题描述】:
我在这个项目上玩得很开心,真的可以使用你的帮助。我会尽量保持简洁。
基本上,我有一个 UI 设置来收集用户信息并将REST API 呼叫发送到我的呼叫控制系统。目前它正在处理添加线路、中继线等方面的工作。
问题是我想查看从服务器返回的响应正文。如果我有异常处理查找OK 状态代码并将指示器变为绿色,它会按照我的要求执行。
但是我无法像我在POSTMAN 中发送呼叫时那样给我完整的响应。
这是我在POSTMAN 中收到的回复,我希望在 VB 中进行 API 调用时回复。我得到了一个Status Code 400,里面有这个。
{ "hint": "指定的模式 (2952) 已被线路所有者使用。", “详细信息”:“冲突模式”, “代码”:“P0001”, “消息”:“无效参数”}
我已经尝试了可以在此站点上找到的所有搜索条件组合,但似乎没有什么对我有用。我只是不知道我做错了什么。以下是现在如何设置请求/响应的示例。
Try
'//Setup HTTP connection and modify headers
Dim APIRequest As HttpWebRequest = HttpWebRequest.Create("https://" & CMIP.Text & "/api/v1/" & Custom_Endpoint_URL.Text)
APIRequest.Method = "POST"
APIRequest.Headers.Add("Authorization", "Bearer " + LatestToken.Text)
APIRequest.ContentType = "application/json"
'WebCall.Headers.Add("Prefer", "return=representation") 'Only used for testing purposes
'//Prepare JSON request
Dim bytearray As Byte() = System.Text.Encoding.UTF8.GetBytes(Custom_Body.Text)
APIRequest.ContentLength = bytearray.Length
'//Bypass self-signed cert issue
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
'//Load JSON payload into datastream
Dim datastream As Stream = APIRequest.GetRequestStream()
datastream.Write(bytearray, 0, bytearray.Length)
''//Response
Dim response As WebResponse = APIRequest.GetResponse
Dim responsestream As Stream = response.GetResponseStream
Dim responsereader As New StreamReader(responsestream)
Dim responsereadstring As String = responsereader.ReadToEnd
'//Send response to results window
Response_Box.Text = responsereadstring
Catch ex As WebException
End Try
我想自己解决这个问题,但我已经做了几天了,现在我正要把头撞到墙上。
【问题讨论】:
标签: json vb.net rest visual-studio-2017