我不断收到 404 错误。\n如果我从 SoapUI 调用 REST API,则效果很好。
\nI\xe2\x80\x99m 使用 Visual Basic VS2015。\n我有一个示例函数,我\xe2\x80\x99m 从一个简单的表单项目调用它。这只是为了让 REST API 正常工作。一旦我让它工作,REST API 调用将进入 Visual Basic Windows 服务,
\n有一个名为 的表单,form1它有一个txtURL文本框、一个调用按钮sub Main()和一个名为 的输出文本框textbox1。
Public Shared Sub Main()\n Try\n Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(Form1.txtURL.Text), HttpWebRequest)\n With myHttpWebRequest\n .Method = "POST"\n .ContentType = "application/json"\n .Accept = "application/json"\n .MediaType = "jsonp"\n \n With .Headers\n .Add("Authorization", "Bearer ABCDabcd1234=")\n .Add("riskLevelStatus", "6897")\n .Add("userId", "12345")\n .Add("applicationName", "MyApp")\n End With\n \n End With\n Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)\n \n Form1.TextBox1.Text = Form1.TextBox1.Text & myHttpWebResponse.ToString() & vbCrLf\n \n myHttpWebResponse.Close()\n 'Catch exception if trying to add a restricted header.\n Catch e As ArgumentException\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-ArgumentException: " & e.Message & vbCrLf\n Catch e As WebException\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-WebException: " & e.Message & vbCrLf\n If e.Status = WebExceptionStatus.ProtocolError Then\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Status Code: " & CType(e.Response, HttpWebResponse).StatusCode & vbCrLf\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Status Description: " & CType(e.Response, HttpWebResponse).StatusDescription & vbCrLf\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Server: " & CType(e.Response, HttpWebResponse).Server & vbCrLf\n End If\n Catch e As Exception\n Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Exception: " & e.Message & vbCrLf\n End Try\n End Sub 'Main\nRun Code Online (Sandbox Code Playgroud)\n以下是输出到的内容textbox1:
\n\n错误 -WebException:远程服务器返回错误:(400) 错误请求。
\n错误-状态代码:400
\n错误-状态说明
\n错误-服务器
\n
应该返回的是单行 JSON,类似于:
\n{\xe2\x80\x9cquid\xe2\x80\x9d: \xe2\x80\x9cjhgdsjdshg-hdbw-akjhjk-kdhbfsihg\xe2\x80\x9d}\nRun Code Online (Sandbox Code Playgroud)\n从 SoapUI 调用时效果很好。
\n我相信这个问题是如何将数据添加到正文?
\n我想到了。我不敢相信没有人给出答案。
Public Sub Try01(URL)
Try
Dim myReq As HttpWebRequest
Dim myResp As HttpWebResponse
Dim myReader As StreamReader
myReq = HttpWebRequest.Create(URL)
myReq.Method = "POST"
myReq.ContentType = "application/json"
myReq.Accept = "application/json"
myReq.Headers.Add("Authorization", "Bearer LKJLMLKJLHLMKLJLM839800K=")
Dim myData As String = "{""riskLevelStatus"":""0001"",""userId"":""10000004030"",""applicationName"":""MyTestRESTAPI""}"
myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count)
myResp = myReq.GetResponse
myReader = New System.IO.StreamReader(myResp.GetResponseStream)
TextBox1.Text = myReader.ReadToEnd
Catch ex As Exception
TextBox1.Text = TextBox1.Text & "Error: " & ex.Message
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31021 次 |
| 最近记录: |