Как отправить HTTP-запрос к приложению rails, чтобы получить ответ json - PullRequest
1 голос
/ 23 июня 2011

Для запроса GET его: -

 response = Typhoeus::Request.get("http://localhost:3000/users/1.json?oauth_token=12")

Это отлично возвращает ответ Json.

для почтового запроса: -

   response = Typhoeus::Request.post("http://localhost:3000/users/1.json?oauth_token=12",:params => {'[user][city]' => params[:location]})

не работает ...

Возвращается ошибка маршрутизации.

Обновление: -

Для входа в систему api post call работает ..

     response = Typhoeus::Request.post(API_SERVER_ADDRESS + "user_sessions.json" + API_OAUTH_TOKEN, :params => {'[user_session][email]' => params[:email], '[user_session][password]' =>params[:password]})

На маршрутах его

resources :users

, а также веб-HTTP-запрос работает отлично ..

UPDATE

Например, http-запрос из журнала рельсов: -

   Parameters: {"commit"=>"Update", "authenticity_token"=>"8nvzCd0GF9IxjMcTfHOMJTPnycVPNIENMoMff8w4qAI=", "utf8"=>"✓", "id"=>"1", "user"=>{ "city"=>"abc"}}

Теперь я хочу отправить такой же запрос ..

Ответы [ 3 ]

1 голос
/ 24 июня 2011

Вот решение

С это

 response = Typhoeus::Request.put(API_SERVER_ADDRESS + "users/" +user_id + ".json" ,:params => {:oauth_token=>'12', :user=>{:city => params[:location]}})
1 голос
/ 23 июня 2011

Параметр: params должен быть хэшем ваших пармов, то есть пар ключ-значение, поэтому может быть что-то вроде этого:

response = Typhoeus::Request.post("http://localhost:3000/users/1.json?oauth_token=12",:params => {:user => 'u', :city => 'c', :location => 'l'})

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

Кроме того, проверьте маршрутизацию , чтобы убедиться, что то, что вы пытаетесь сделать, правильно маршрутизируется.

0 голосов
/ 23 июня 2011

Убедитесь, что вы указали отдельный POST маршрут в вашем routes.rb файле.Даже если URL-адреса одинаковы, для разных методов HTTP требуются разные маршруты.

Использование resources :users дает по умолчанию следующее:

GET     /users/new        # new
POST    /users            # create
GET     /users/:id        # show
GET     /users/:id/edit   # edit
PUT     /users/:id        # update
DELETE  /users/:id        # destroy
...