json - VB.NET 无法正确发送 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 的开头和结尾放置了一个 \。
我敢肯定这很简单,但是对于我的一生,我找不到任何有用的东西。
解决方案
我会简单地创建一个 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"...
因此,您需要(一次)添加更多项目,例如获取 [] 的列表。
这些空格并不重要,它会被很好地阅读,它只是显示的格式。
推荐阅读
- java - 为什么我的代码仍然在 URI 上显示错误的答案?
- android - 我想更改菜单导航栏中的一项(颜色和图标)或添加文本(新的红色)
- flutter - 如何从 Picker Flutter 小部件中删除灰色框
- php - Laravel 应用程序重定向到 /home,即使它没有在整个应用程序中定义
- vue.js - 如何以树状结构查看 vue 项目中的所有组件?
- azure-keyvault - 对于 Azure Key Vault,是否有可能在单个 keyvault 中使用不同的机密来访问不同的资源(是/否)?如果是,如何?
- sql - SQL LOADER 中的连接常量和动态字段
- firebase - Firebase Fastlane 构建失败,未找到请求的实体
- animation - SVG没有在中心设置动画
- function - 返回卷 usinf Security() 函数中的问题