在Ruby中坚持使用HTTP GET身份验证

时间:2013-05-18 22:49:24

标签: ruby json authentication

我正在尝试编写短脚本来使用GET请求进行HTTP身份验证

这使得GET请求。

    def try_login(u, p)
      path1 = '/index.php'
      path2 = '?uuser=#{myuser}&ppass=#{mypass}'
      r = send_request_raw({
        'URI' => "#{path1}#{path2}",
        'method' => 'GET'
      })
    ...continued...

但是这段代码不起作用,因为错误说:

  

未定义的局部变量或方法`myuser'

- >基本上我正在尝试使用登录参数发送一(1)个GET请求,并且应用程序使用特定数据进行响应。我不知道如何在此GET请求中为userpass添加占位符。

...

接下来,我正在检查HTTP响应。响应像JSON mime一样出现:

成功回应

{"param1":1,"param2"="Auth Success","menu":0,"userdesc":"My User","user":"uuser","pass":"ppass","check":"success"}

失败回复

{"param1":-1,"param2"="Auth Fail","check":"fail"}

- >如何检查此类数据的响应正文。

我现在一整天都在努力,但完全陷入困境。请指教。

编辑: 我不明白为什么有人拒绝投票这个问题对我的研究很少甚至没有研究。直到昨天早上,我对红宝石代码&使用它。然后我花了很多时间查看许多不同的例子,制作我的脚本并测试它。当它仍然不起作用时,我在这里问我的问题。请你,如果你还想投票,请这样做,但请至少分享一些指示来解决这个问题。

1 个答案:

答案 0 :(得分:0)

def try_login(u, p)
  path1 = '/index.php'
  path2 = '?uuser=#{myuser}&ppass=#{mypass}'
  r = send_request_raw({
    'URI' => "#{path1}#{path2}",
    'method' => 'GET'
  })
...continued...

应该是:

def try_login(u, p)
  path1 = '/index.php'
  path2 = "?uuser=#{u}&ppass=#{p}"
  r = send_request_raw({
    'URI' => "#{path1}#{path2}",
    'method' => 'GET'
  })
...continued...

为了在Ruby中解析JSON,我建议你看一下this对另一个问题的回答。

编辑try_login(u, p)无法正常工作的原因是因为Ruby不对单引号(')字符串进行字符串插值。此外,myusermypass似乎不是正确的变量。