Ruby on rails 如何向rails应用程序发送http post请求以获得json响应
对于GET its请求:-Ruby on rails 如何向rails应用程序发送http post请求以获得json响应,ruby-on-rails,json,post,typhoeus,Ruby On Rails,Json,Post,Typhoeus,对于GET its请求:- 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]' => pa
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调用正在工作
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
而且web http请求工作得非常好
更新
例如,来自rails日志的http请求是:--
现在我想发送相同类型的请求。参数:params应该是parms的散列,表示键值对,因此可能类似于:
response = Typhoeus::Request.post("http://localhost:3000/users/1.json?oauth_token=12",:params => {:user => 'u', :city => 'c', :location => 'l'})
…或诸如此类-无论参数是什么,无论值是什么。我认为,你的原创并没有转化为你想要做的事情的有意义的散列
此外,请检查您的路由,以确保您尝试执行的操作已正确路由。确保您已在
路由.rb
文件中声明了单独的POST
路由。即使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
这是解决办法
从
如果你能解释一下你想通过的PARM,我可以用适当的代码更新我的例子。我恐怕我会有平底船,我被难住了。您将工作登录调用发布到哪个API服务?另一端是你写的吗?只是问一下,因为github站点()上的Typhous Basic没有显示类似的内容:您正在使用的参数设置,以括号中的字符串作为键。。。自述文件中的所有内容都是直接的键值对。如果可以的话,那么我就不熟悉这个特殊的语法。@yardboy他们会如何重新格式化这个:params=>{'[user_session][email]=>params[:email],'[user_session][password]=>params[:password]})或者“user”=>{city=>“abc”}可能类似于::params=>{:user_session=>{'email'=>params[:email],“password=>params[:password]}这就是控制器中的params散列的样子,例如,如果所有这些都是从以标准方式构建的表单中获取的,即您将以params[:user_session]['email']和params[:user_session]['password'访问电子邮件和密码数据。我已经试过了。。但这根本不起作用。在路由其资源中:用户扫描您发布服务器日志的输出?很难粘贴该日志,然后在编辑器中对齐。因此请检查此屏幕截图。同时,我正在尝试更新问题。这看起来更像服务器响应对象。您正在运行
rails服务吗呃
在终端中?这就是我要寻找的输出。@luke Yupp..基本上我已经在ruby on rails中开发了带有内置json api响应调用的web应用程序。现在我正在移动站点上工作..这就是我遇到的问题。
GET /users/new # new
POST /users # create
GET /users/:id # show
GET /users/:id/edit # edit
PUT /users/:id # update
DELETE /users/:id # destroy
response = Typhoeus::Request.put(API_SERVER_ADDRESS + "users/" +user_id + ".json" ,:params => {:oauth_token=>'12', :user=>{:city => params[:location]}})