John Robert Connolly Ответов: 1

Мне нужна помощь с restsharp ADDJSONBODY


Я пытаюсь сделать запрос post с помощью RESTSHARP, используя VB.NET и я не могу заставить его работать.
Строка Post BODY JSON должна быть:
{
  "orderType": "MARKET",
  "session": "NORMAL",
  "duration": "DAY",
  "orderStrategyType": "SINGLE",
  "orderLegCollection": [
    {
      "instruction": "Buy",
      "quantity": 15,
      "instrument": {
        "symbol": "XYZ",
        "assetType": "EQUITY"
      }
    }
  ]
}

ПОЖАЛУЙСТА ПОМОЧЬ....

Если бы вы знали лучший способ, я бы работал с вами...
СПАСИБО!!

Что я уже пробовал:

Это и есть то самое vb.net код, который я пробовал:
Dim url As String
Dim strBuyURLBody As String

url = "https://api.tdameritrade.com/v1/accounts/myaccountnumber/orders"
Dim client = New RestClient(url)
Dim postRequest = New RestRequest(Method.POST)
postRequest.AddHeader("cache-control", "no-cache")
postRequest.AddHeader("content-type", "application/json")
postRequest.AddHeader("Authorization", "Bearer myvalidaccesscode")
postRequest.AddJsonBody(New With {Key .session = "AM", Key .duration = "FILL_OR_KILL", Key .orderType = "MARKET", Key .orderStrategyType = "Single", .orderLegCollection = New With {Key .instruction = "BUY", Key .quantity = 1, .instrument = New With {Key .symbol = "MSFT", Key .assetType = "EQUITY"}}})
Dim response1 As IRestResponse = client.Execute(postRequest)
strJSON = response1.Content

Сообщение об ошибке, которое я получаю, таково:
"{" & vbLf & "  ""error"" : ""A validation error occurred while processing the request.""" & vbLf & "}"

1 Ответов

Рейтинг:
4

Richard Deeming

Содержимое тела JSON не соответствует требуемой структуре. То orderLegCollection должен быть набор объектов, но вы передали только один объект.

Попробуй:

postRequest.AddJsonBody(New With {Key .session = "AM", Key .duration = "FILL_OR_KILL", Key .orderType = "MARKET", Key .orderStrategyType = "Single", .orderLegCollection = New Object() { New With {Key .instruction = "BUY", Key .quantity = 1, .instrument = New With {Key .symbol = "MSFT", Key .assetType = "EQUITY"}}}})