Nano Hash - криптовалюты, майнинг, программирование

запрос на размещение ruby ​​rest_client не работает должным образом

Я отправляю запрос PUT в какой-либо сервис с помощью драгоценного камня RestClient. Я делаю это так:

RestClient.put('http:/app.com/resource/:id.json', { app_token: 'xxx', resource: { status: 'NNN' }})

Но ответ JSON пуст (не возвращает то, что мне нужно). Если я отправлю запрос следующим образом:

RestClient.put('http:/app.com/resource/:id.json?app_token=XXX&resource[status]=NNN', {})

тогда все в порядке (JSON в норме). Что не так с моим кодом? Спасибо!


P.S. Бревно:

1) RestClient.put "http:/app.com/resource/:id.json", "app_token=XXX&resource[status]=NNN", "Accept"=>"/; q=0,5 , application/xml", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"73", "Content-Type"=>"application/x-www-form-urlencoded"

# => 200 ОК | application/json 12 байт (пустой JSON)

2) RestClient.put "http:/app.com/resource/:id.json?app_token=XXX&resource[status]=NNN", "Accept"=>"/; q=0,5, приложение /xml", "Accept-Encoding"=>"gzip, deflate"

# => 200 ОК | application/json 37 байт (действительный JSON)

27.08.2014

Ответы:


1

Из документа я думаю, что это должно быть написано как:

RestClient.put('http:/app.com/resource/:id.json', nil,{params: { app_token: 'xxx', resource: { status: 'NNN' }}})

См. https://github.com/rest-client/rest-client#query-parameters

27.08.2014
  • привязался, но получил тот же результат :( 27.08.2014
  • извините за пост, вы пробовали это: RestClient.put('http:/app.com/resource/:id.json', nil, {params: { app_token: 'xxx', resource: { status: 'NNN ' }}}) (я обновил свой ответ), просто добавьте ноль или в полезную нагрузку 27.08.2014
  • Да, это приятно! Только одна проблема: rest_client генерирует следующий запрос: RestClient.put http://app.com/resource/:id.json?app_token=XXX&&resource=%7B%3Astatus%3D%3E%22NNN%22%7D, , Accept=›< я>/; q=0.5, application/xml, Accept-Encoding=›gzip, deflate, Content-Length=›0, Content-Type=›application/x-www-form-urlencoded 27.08.2014
  • Это означает, что RestClient отправляет следующие параметры: resource={:status=>"NNN"} 27.08.2014
  • Я могу отправить RestClient.put('http:/app.com/resource/:id.json', nil,{params: { app_token: 'xxx', 'resource[status]' => 'NNN' }}), но это какой-то обезьяний патч :| 27.08.2014
  • нет, вторым параметром является полезная нагрузка поста. Обычно, если вы делаете запрос на публикацию, это потому, что вы публикуете что-то, и это обычно не пусто, это имеет смысл... 27.08.2014
  • Я имею в виду, что 'resource[status]' => 'NNN' — это патч для обезьян. Я хочу очистить синтаксис, например, простой хэш, а не строки... 27.08.2014
  • ах, я вижу..... где-то должно быть что-то в рельсах, чтобы сделать это, не уверен, что ваше приложение использует рельсы? 27.08.2014
  • .to_query выполняет свою работу, но добавляется по рельсам. Пример: {params:{a:1}}.to_query возвращает params%5Ba%5D=1 27.08.2014

  • 2

    Почему бы тебе не попробовать это? Более чистый синтаксис.

    @options = { 
        params: { 
            app_token: 'xxx', 
            resource: { 
                status: 'NNN'
            }
        } 
    }
    
    RestClient.put("http:/app.com/resource/:id.json", @options)
    
    27.08.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..