我不断收到404错误。 如果我从SoapUI调用REST API,效果很好。
我正在使用Visual Basic VS2015。 我有一个示例函数,该函数是从一个简单的表单项目中调用的。这仅仅是为了使REST API起作用。一旦我可以正常使用,REST API调用将进入Visual Basic Windows服务,
有一个名为form1
的表单,其中有一个txtURL
文本框,一个用于调用sub Main()
的按钮以及一个名为textbox1
的输出文本框。
Public Shared Sub Main()
Try
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(Form1.txtURL.Text), HttpWebRequest)
With myHttpWebRequest
.Method = "POST"
.ContentType = "application/json"
.Accept = "application/json"
.MediaType = "jsonp"
With .Headers
.Add("Authorization", "Bearer ABCDabcd1234=")
.Add("riskLevelStatus", "6897")
.Add("userId", "12345")
.Add("applicationName", "MyApp")
End With
End With
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
Form1.TextBox1.Text = Form1.TextBox1.Text & myHttpWebResponse.ToString() & vbCrLf
myHttpWebResponse.Close()
'Catch exception if trying to add a restricted header.
Catch e As ArgumentException
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-ArgumentException: " & e.Message & vbCrLf
Catch e As WebException
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-WebException: " & e.Message & vbCrLf
If e.Status = WebExceptionStatus.ProtocolError Then
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Status Code: " & CType(e.Response, HttpWebResponse).StatusCode & vbCrLf
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Status Description: " & CType(e.Response, HttpWebResponse).StatusDescription & vbCrLf
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Server: " & CType(e.Response, HttpWebResponse).Server & vbCrLf
End If
Catch e As Exception
Form1.TextBox1.Text = Form1.TextBox1.Text & "Error-Exception: " & e.Message & vbCrLf
End Try
End Sub 'Main
这是输出到textbox1
的内容:
错误-WebException:远程服务器返回错误:(400)错误的请求。
错误-状态代码:400
错误-状态描述
错误-服务器
应该返回的是单行JSON,类似于以下内容:
{“quid”: “jhgdsjdshg-hdbw-akjhjk-kdhbfsihg”}
从SoapUI调用时效果很好。
我相信这个问题是如何向身体添加数据?
答案 0 :(得分:0)
我知道了。我不敢相信没人能回答。
公共Sub Try01(URL) 尝试 将MyReq设为HttpWebRequest 将MyResp设为HttpWebResponse 将myReader昏暗为StreamReader myReq = HttpWebRequest.Create(URL) myReq.Method =“开机自检” myReq.ContentType =“应用程序/ json” myReq.Accept =“应用程序/ json” myReq.Headers.Add(“授权”,“承载者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 =新System.IO.StreamReader(myResp.GetResponseStream) TextBox1.Text = myReader.ReadToEnd 异常捕获 TextBox1.Text = TextBox1.Text&“错误:”&例如消息 结束尝试 结束