我有一个需要电子邮件和密码的登录名。
如果我用这个从 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/