У меня есть POST-запрос для входа на сайт тестирования
Этот запрос прекрасно работает с гемами cURL или Faraday, но плохо работает с гемом rest-client.
1) С cURL
curl -X POST \
'https://mysite.vn/api/tokens?email=my_email@gmail.com&password=my_password12&grant_type=password' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 5dea5d74-80e6-41b1-87bc-ee3c81cf754a' \
-H 'cache-control: no-cache'
#
2) С Фарадеем
request_body = '{"email": "my_email@gmail.com", "password": "my_password12", "grant_type":"password"}'
conn = Faraday.new(:url => 'https://mysite.vn/api/tokens')
response_faraday = conn.post do |req|
req.headers['Content-Type'] = 'application/json'
req.body = request_body
end
puts response_faraday.status
#
3) С отдыхом-клиентом
new_payload = {
email: 'my_email@gmail.com',
password: 'my_password12',
grant_type: 'password'
}
response_resclient = RestClient::Request.execute(
method: :post,
url: 'https://mysite.vn/api/tokens',
payload: new_payload.to_json,
headers: {'Content-Type': 'application/json', 'Accept': 'application/json'})
помещает response_resclient.code
Для 1 и 2 оба значения верны. Все они возвращают статус 201, войдите успешно, но это не удалось с 3 - Rest_Client Статус 404
Я попытался использовать httplog для проверки, и вот файл журнала
Фарадей:
D, [2019-01-18T00: 25: 10.228043 # 7764] DEBUG -: [httplog] Подключение: mysite.vn:443
D, [2019-01-18T00:25:11.355649 #7764] DEBUG -- : [httplog] Sending: POST http://mysite.vn:443/api/v2/tokens/
D, [2019-01-18T00:25:11.356434 #7764] DEBUG -- : [httplog] Data: {"email": "my_email@gmail.com", "password": "my_password12", "grant_type":"password"}
D, [2019-01-18T00:25:11.362419 #7764] DEBUG -- : [httplog] Status: 201
D, [2019-01-18T00:25:11.362419 #7764] DEBUG -- : [httplog] Benchmark: 0.053334 seconds
D, [2019-01-18T00:25:11.363419 #7764] DEBUG -- : [httplog] Response:
201
Rest_Client:
D, [2019-01-18T00:37:29.982352 #12472] DEBUG -- : [httplog] Connecting: mysite.vn:443
D, [2019-01-18T00:37:31.105052 #12472] DEBUG -- : [httplog] Sending: POST http://mysite.vn:443/api/v2/tokens/
D, [2019-01-18T00:37:31.105052 #12472] DEBUG -- : [httplog] Data:
D, [2019-01-18T00:37:31.111003 #12472] DEBUG -- : [httplog] Status: 404
D, [2019-01-18T00:37:31.112000 #12472] DEBUG -- : [httplog] Benchmark: 0.010938 seconds
D, [2019-01-18T00:37:31.112997 #12472] DEBUG -- : [httplog] Response:
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
С гемом Rest-client, он возвращает ошибку 404 после отправки почтового запроса на mysite.vn с кодом 443. У меня нет идеала в этом случае.
Не могли бы вы помочь мне объяснить этот случай. и как мне исправить это с Rest-Client