【问题标题】:Not finding RequestParams with Rest service没有找到带有 Rest 服务的 RequestParams
【发布时间】:2015-08-24 02:59:49
【问题描述】:

我正在编写一个 android 应用程序,它使用 rest 服务进行用户注册等,但我的登录服务遇到了问题。由于某种原因,在我的休息服务中找不到我在android端的服务调用中的requestparams。 anny 1 能否告诉我我做错了什么或链接到解释如何解决此问题的指南?

相关安卓功能:

public void loginUser(View view) {

    // Get username and password values
    String username = usernameEdit.getText().toString();
    String password = passwordEdit.getText().toString();

    // Instantiate Http Request Param Object
    RequestParams params = new RequestParams();

    // Check if username & password is not null
    if(Utility.isNotNull(username) && Utility.isNotNull(password)) {

        // Http parameters
        params.put("username", username);
        params.put("password", password);
        invokeWS(params);

    } else {
        Toast.makeText(getApplicationContext(), "Vul een gebruikersnaam en of " +
                "wachtwoord in", Toast.LENGTH_LONG).show();
    }
}

// Method that performs RESTful webservice invocations
public void invokeWS(RequestParams params) {

    // Make RESTful webservice call using AsyncHttpClient object
    AsyncHttpClient client = new AsyncHttpClient();

    client.post("http://10.0.2.2:8080/NTR_application/rest/session", params, new AsyncHttpResponseHandler() {

        // When the response returned by REST has Http response code '200'
        @Override
        public void onSuccess(String response) {
            Toast.makeText(getApplicationContext(), "You are successfully logged in!" + response, Toast.LENGTH_LONG).show();

            // Gets an JSON object with user Data
            // Write user Data to SQLite
            User user = new Gson().fromJson(response, User.class);
            db.addUser(user);

            // Navigate to Home screen
            navigatetoHomeActivity();
        }

        // When the response returned by REST has Http response code other than '200'
        @Override
        public void onFailure(int statusCode, Throwable error,
                              String content) {
            Toast.makeText(getApplicationContext(), "ERROR!" + content + error + statusCode, Toast.LENGTH_LONG).show();
        }
    });
}

以及其他被称为的服务:

@Path("/session")
public class UserService {

    private Controller controller = new Controller();

    @POST //Post so you can't see the information in the browser history easily
    @Produces(MediaType.APPLICATION_JSON)
    public Response authenticate(@QueryParam("username") String username, @QueryParam("password") String password){
        User user = null;
        try {
             user = controller.authenticate(username, password);
        } catch (NoSuchAlgorithmException | SQLException e) {
            System.out.println("Authentication caught an exception; failed for: " + username);
            e.printStackTrace();
        }
        if (user != null){
            String json = new Gson().toJson(user);
            return Response.status(200).entity(json).build();
        } else {
            return Response.status(401).entity("Username and/or password is incorrect").build();
        }
    }
}

【问题讨论】:

    标签: java android rest jax-ws


    【解决方案1】:

    我一看到错误就很明显了,因为我使用了@POST,所以我需要使用@FormParam 而不是@QueryParam。 教程我曾经编写这些方法使用@GET 登录这是不安全的。

    【讨论】:

      猜你喜欢
      • 2013-12-14
      • 2014-03-21
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2019-11-30
      • 2012-10-15
      相关资源
      最近更新 更多