登录RESTFUL api,在登录成功时返回id

时间:2018-06-17 07:50:49

标签: java android api login restful-authentication

我已经制作了一个登录api,当我在android app中传递用户名和密码时会返回一个id。

public class LoginApiBody
{
    public string UserName { get; set; }
    public string Password { get; set; }
}

说链接是http://abcd.org/efg/login。 目前链接显示:

{  
   "message": "The request is invalid.", 
   "messageDetail": "The parameters dictionary contains a null entry for parameter 'Id' of non-nullable type 'System.Int32' for method System.Net.Http.HttpResponseMessage Get(Int32)' in 'KnwPortal.Controllers.UsersAPIController'. An optional parameter must be a reference type,  a nullable type, or be declared as an optional parameter." 
}

我必须通过' UserName'和密码'使用POST方法到服务器。我的问题是我应该以哪种格式发送/传递我的用户名和密码?无论是在JSONObject还是其他什么?他如何验证服务器上是否存在传递的UserName和Password? 我试过这个,但没有成功

Ion.with(User_Activity.this)
        .load("http://abcd.org/efg/login")
        .setBodyParameter("UsserName",user)
        .setBodyParameter("Password",pass)
        .asString()
        .setCallback(new FutureCallback() {
            @Override
            public void onCompleted(Exception e, Object result) {
                //on complete
            }
        });

或者我的loginapi做错了什么?

1 个答案:

答案 0 :(得分:0)

如果要使用离子发布数据,请使用此选项。官方的github文档没有提到使用" POST"在负载。第一次使用它时,我被震惊了几天

注意:我在ION库代码中发现了以下问题。更新它将以API返回的String形式给出结果。如果您的API返回JSONObject,请尝试使用.asJSONObect()代替.asString()。您还必须适当地更改回调方法

如果弹出任何错误,我很乐意提供帮助

Ion.with(User_Activity.this)
            .load("POST","http://abcd.org/efg/login")
            .setBodyParameter("UsserName",user)
            .setBodyParameter("Password",pass)
            .asString()
            .setCallback(new FutureCallback() {
                @Override
                public void onCompleted(Exception e, Object result) {
                    //on complete
                }
            });

您还需要为您的API提供一个端点,我无法在您的问题中找到。

ION库将用于在url编码方法中对数据进行编码。你不需要添加它。它的服务器响应方法必须在ion中设置。我已经告诉过你该怎么做了。由于我无法看到您的api的返回数据和端点,如果API中存在任何问题,我将无法帮助您。如果它不起作用,请添加您的API代码。