VB.NET无法正确发送POST请求

时间:2019-06-26 18:46:08

标签: json string vb.net dictionary post

所以我正在使用Newtonsoft.Json发送POST请求。

我必须使用字典来指定我的键和值。

这是POST在接收端的外观:

{"type":"direct","packages":["http://whatever:9999/something.pkg"]}

我的代码:

    dictData.Add("type", "direct")
    dictData.Add("packages", "[http://whatever:9999/something.pkg]")
    jsonPost.postData(dictData)

输出:

 {
  "type": "direct",
  "packages": "[http://whatever:9999/something.pkg]"
   }

问题是:我在那里不希望有空格,我希望所有内容都在一行中,并且我希望URL用引号引起来。我尝试使用双“”方法,并得到了引号,但它还在URL的开头和结尾都放置了一个\。

我确信这很简单,但是对于我一生来说,我找不到任何有效的方法。

1 个答案:

答案 0 :(得分:0)

我只需创建一个Jobject(第一个{})并向其中添加内容。喜欢:

Dim JSON_Post As New JObject
JSON_Post.Add("type", "direct")
Dim JSON_Array As New JArray
JSON_Array.Add("http://whatever:9999/something.pkg")
'Or JSON_Post.Add("packages", New JArray From {"http://whatever:9999/something.pkg"})
JSON_Post.Add("packages", JSON_Array)
Debug.Print(JSON_Post.ToString)

'Output
{
  "type": "direct",
  "packages": [
    "http://whatever:9999/something.pkg"
  ]
}

您可以对字典和列表进行同样的操作,字典是键值部分,因此它总是看起来像

"type1": "direct1",
"type2", "direct2"...

因此,您需要一次添加包含更多项的内容,例如获取[]的列表。

那些空格并不重要,可以很好地阅读,这就是显示格式的方式。