Asp.net Json Post 请求

标签 asp.net json vb.net ssl

我需要通过发送 Json 请求连接到服务器。

服务器的管理员告诉我应该安装 https 服务器。

我买了一个 ssl 并安装在我的服务器上。

他们向我发送了 json 字符串格式,即如何从他们的服务器获取数据。 我尝试提出示例请求,但每次收到此错误时:

The remote server returned an error: (400) Bad Request.

我调用他们,他们说请求缺少私钥或公钥证书(我向他们发送了证书,他们也将其安装在他们的服务器上)但仍然出现相同的错误。

这是我使用的代码:

谁能告诉我,如果我有什么不对的地方吗?

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    POST("https://gw.bisan.com/api/apdemo_6", "{""user"":""MyUser"",""password"":""MyPASS"",""command"":""table"",""table"":""currency"",""fields"":[""symbol"",""rate""]}")
    ' Read()
End Sub

Private Sub POST(url As String, jsonContent As String)
    Try
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
        request.ContentType = "text/json"
        request.Method = "POST"
        Dim streamWriter As StreamWriter = New StreamWriter(request.GetRequestStream())
        streamWriter.Write(jsonContent)
        streamWriter.Flush()
        streamWriter.Close()
        Dim httpResponse As HttpWebResponse = request.GetResponse()
        Dim streamReader As StreamReader = New StreamReader(httpResponse.GetResponseStream())
        Dim result = streamReader.ReadToEnd()
        Label1.Text = result.ToString
    Catch ex As WebException
        Label1.Text = ex.Message
    End Try
End Sub

最佳答案

在您的开发机器上安装 Fiddler http://www.telerik.com/fiddler ,启动它并从您的机器发出发布请求。 Fiddler 将捕获所有的 post 请求信息并为您组织它,这样您就可以准确地查看您的代码发送的内容并将其与服务器期望的内容进行比较。从那里您应该能够更清楚地轻松看到 400 错误的原因并相应地修改您的代码。

我猜测问题出在JSON字符串的最终输出或request.ContentType = "text/json"(可能需要是application/json)。无论哪种方式,Fiddler 都是一种更快的查找方式。

关于Asp.net Json Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349547/

相关文章:

c# - '/' 应用程序中的服务器错误-->服务器标记格式不正确

c# - 数据读取器与指定的不兼容。在数据读取器中没有同名的对应列

json - Compojure ring-json 不返回 json

java - 使用 JSON 填充 ext-js 组合框

c++ - C++ 中是否有任何与传输无关的 JSON-RPC 实现?

vb.net - 用户控件在运行时自动调整大小

asp.net - 在 asp.net 应用程序中查看所有 session

asp.net - ASP .NET : Dynamic load controls vs Visible = true

mysql - 将 DataRow 复制到另一个表 (vb.net/mysql)

c# - 如何在代码中将图像文件添加到图像列表?