VB.NET не может правильно отправить запрос POST - PullRequest
0 голосов
/ 26 июня 2019

Поэтому я использую 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 голосов
/ 27 июня 2019

Я бы просто создал 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"...

Так что вам нужно добавить что-то с большим количеством элементов (сразу), например, список, чтобы получить [].

И эти пробелы не важны, они будут прочитаны просто отлично, просто отформатирован дисплей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...