Отправка массива в виде тела в HTTP-запросе после отправки: неопределенный метод `bytesize 'для # - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь сделать почтовый запрос с использованием httparty gem.

    response = HTTParty.post(App.base_uri + "/api?service=post&action=update&version=2",
    body: [{"some_big_json": "with many key value pair"}],
    headers: {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json',
      'Cookie' => @@cookie
    })

Тело - это массив.Когда я делаю запрос на публикацию, я получаю эту ошибку:

/home/user/.rbenv/versions/2.5.0/lib/ruby/2.5.0/net/http/generic_request.rb:183:in send_request_with_body': undefined method bytesize' for #<Array:0x00005561f96833e0> (NoMethodError)

Как разместить большой массив в теле, используя httparty?

Обновить : В почтальоне я могу отправить тело в виде массива, и я получаю успешный (ожидаемый) ответ.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы также можете попробовать RestClient

RestClient::Request.execute(method: :post,
                            url: App.base_uri + '/api',
                            payload: params,
                            timeout: 1000,
                            headers: headers)
0 голосов
/ 30 января 2019

Попробуйте передать строку, а не массив.

response = HTTParty.post(App.base_uri + "/api?service=post&action=update&version=2",
    body: "[{'some_big_json': 'with many key value pair'}]",
    headers: {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json',
      'Cookie' => @@cookie
    })
...