Оставьте пост клиента с именем пользователя и паролем - PullRequest
0 голосов
/ 26 августа 2018
curl --request POST \
  --url https://example.com/token/grant \
  --header 'password: password' \
  --header 'username: user' \
  --data '{"app_key":"my_app_key","app_secret":"my_app_secret"}'

Я пытаюсь получить эквивалентный код ruby ​​для указанного выше запроса curl с клиентом отдыха.

Я пробовал:

auth = 'Basic ' + Base64.encode64( "#{AA['user_name']}:#{AA['password']}" ).chomp
response = RestClient.post'https://example.com/token/grant', {"app_key":"my_app_key","app_secret":"my_app_secret"}, {  'Authorization' => auth , :accept => :json, 'Content-Type': 'application/json' }
response = JSON.parse(response)

Это не сработало.

2-я попытка:

RestClient.post 'https://example.com/token/grant', {"app_key":"my_app_key","app_secret":"my_app_secret"}.to_json,  {'username': 'username', 'password': 'password', content_type: 'application/json'}

Также не работает. Я проверил имя пользователя и пароль правильный.

Это показывает, что имя пользователя отсутствует в заголовке.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я пытался с клиентом отдыха.Это не работает.Затем я также попробовал Фарадей, Net HTTP ничего не работает.

Затем я попытался с curb .Это работает.

require 'curb'
request_path= 'https://example.com/token/grant'
payload = {
          app_key: 'app_key',
          app_secret: 'app_secret'
        }
http = Curl.post(request_path, payload.to_json) do |http|
          http.headers['username'] = 'user_name'
          http.headers['password'] = 'password'
          http.headers['Content-Type'] = 'application/json'
        end
JSON.parse(http.body_str)
0 голосов
/ 26 августа 2018

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

Я выполнилКоманда ниже для пользовательского кода, и это сработало.

 RestClient.post 'https://example.com/token/grant', {"app_key":"my_app_key","app_secret":"my_app_secret"}.to_json,  {username: 'username', password: 'password', content_type: 'application/json'}

Примечание: я только что обновил представление ключей заголовка, переданных в хэше заголовка.

...