-1

我正在尝试编写简短的脚本来使用 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 请求,并且应用程序会使用特定数据进行响应。user而且我不知道如何pass在这个 GET 请求中放置占位符。

...

接下来,我正在检查 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"}

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

我一直在尝试一整天,但完全卡住了。请指教。

编辑:我不明白为什么有人对这个问题投了反对票,说我几乎没有研究。直到昨天早上,我对 ruby​​ 代码和使用它的想法完全为零。然后我花了很多时间查看许多不同的示例,制作我的脚本并对其进行测试。当它仍然不起作用时,我在这里问了我的问题。请,如果您仍然想投反对票,请这样做,但请至少分享一些解决此问题的建议。

4

1 回答 1

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,我建议您看一下这个对另一个问题的回答。

编辑:原因try_login(u, p)没有像您期望的那样工作是因为 Ruby 不对单引号 ( ') 字符串进行字符串插值。此外,myuser并且mypass似乎不是正确的变量。

于 2013-05-19T11:20:05.457 回答