java - Android HTTPGet 到 Rails REST 登录

标签 java android ruby-on-rails ruby-on-rails-3 rest

我有一个需要电子邮件和密码的登录名。

如果我用这个从 Postman rest 客户端命中它:

www.site.com/login.json?session[email]=bob@gmail.com&session[password]=password

服务器 (Rails) 会像这样读取它:

{"session"=>{"email"=>"bob@gmail.com", "password"=>"password"}, "action"=>"create", "controller"=>"sessions", "format"=>"json"}

但是,如果我使用 HTTPGet 从 android 发送相同的内容,如下所示:

            HttpClient httpclient = new DefaultHttpClient();

            //get the parameters
            String email = params[0];
            String password = params[1];

            String url = "http://www.site.com/login.json?session[email]=" + email + "?session[password]=" + password;

            HttpGet httpget = new HttpGet(url);

            httpget.setHeader("Accept", "application/json");
            httpget.setHeader("Content-type", "application/json");
response = httpclient.execute(httpget);

服务器无法识别参数,我最终得到一个空的 json 对象,如下所示:

{"session"=>{}, "action"=>"create", "controller"=>"sessions", "format"=>"json"}

有人知道如何在 android 中的 HTTPGet 调用中形成参数,使其像在其余客户端调用中一样工作吗?谢谢!

最佳答案

您的 URL 似乎有错别字,参数也乱七八糟。这一行:

String url = "http://www.site.com/login.json?session[email]=" + email + "?session[password]=" + password;

应该是

String url = "http://www.site.com/login.json?session[email]=" + email + "&session[password]=" + password;

请注意,我已将 ?session[password]= 替换为 &session[password]=

关于java - Android HTTPGet 到 Rails REST 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18609866/

相关文章:

文件后面的 Android 布局引用 xml 元素

ruby-on-rails - 如何使用 Ruby on Rails 将普通台式机变成服务器来托管网站?

ruby-on-rails - Ruby Multi threading,我在做什么错?

ruby-on-rails - Rails 通过路由出现自定义错误 - 读取原始请求的 URL

java - 如何在 Java 中使用 DOM 获取目标命名空间及其前缀?

java - 为什么 Hibernate 在现有值为 null 时执行 INSERT 而不是 UPDATE?

java - 为什么不添加文件而不是覆盖文件?

java - 求部分填充数组的平均值

java - 基于日期按小时/半小时的 Bin Java 时间戳

Android - 应用内购买 - 您需要将 BILLING 权限添加到您的 APK