【问题标题】:Call WS Rest Java with AngularJS使用 AngularJS 调用 WS Rest Java
【发布时间】:2017-02-02 19:55:22
【问题描述】:

我在调用 WS Rest Java 时遇到问题。我调用了 WS,但没有传递参数。

我的java代码:

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response setUser(@FormParam("name") String name, @FormParam("surname") String surname, @FormParam("email") String email,
                        @FormParam("phone") String phone, @FormParam("skype") String skype, @FormParam("password") String password){
    try {
        FileOutputStream fis =  new FileOutputStream("/home/File.txt");
        PrintStream ps = new PrintStream(fis);
        String s = "name: "+name+"\nSurname: "+surname+"\nEmail: "+email+"\nPhone: "+phone+"\nSkype: "+skype+"\nPassword: "+password;
        ps.println(s);
        ps.close();
        fis.close();
        UserDAO userdao = new UserDAO(0,name,surname,email,phone,skype);
        userdao.save();
        ...
        return Response.status(200).entity(new ObjectMapper().writeValueAsString("OK!")).header("Access-Control-Allow-Origin", "*").build();
    } catch (Exception e) {
        e.printStackTrace();
        return Response.status(500).entity("ERROR!").header("Access-Control-Allow-Origin", "*").build();
    }
}

角度调用:

data = {
    name: $scope.reg_name,
    surname: $scope.reg_surname,
    email: $scope.reg_email,
    phone: $scope.reg_phone,
    skype: $scope.reg_skype,
    password: $scope.reg_password
  }
$http.post(baseUrl+'user/',data,{
    headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
  });

如果我设置了有关角度数据的日志数据,则调用正常,但是当我创建 AccountDAO 对象时出现错误,因为参数为空。为了测试参数值,我创建了一个文件并将值放在这里,内容如下:

名称:空

姓:空

电子邮件:空

电话:空

Skype:空

密码:空

有人知道为什么不传递参数吗?

谢谢!

已解决:

data = "name=" + $scope.reg_name +
"&surname=" + $scope.reg_surname +
"&email=" + $scope.reg_email +
"&phone=" + $scope.reg_phone +
"&skype=" + $scope.reg_skype +
"&password=" + $scope.reg_password;
  }
$http.post(baseUrl+'user/',data,{
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
  })

谢谢灰熊!

【问题讨论】:

    标签: java angularjs web-services rest


    【解决方案1】:

    您正在以 JSON 格式发送数据。改成表格数据串:

      data = "name=" + $scope.reg_name +
        "&surname=" + $scope.reg_surname +
        "&email=" + $scope.reg_email +
        "&phone=" + $scope.reg_phone +
        "&skype=" + $scope.reg_skype +
        "&password=" + $scope.reg_password;
      }
    $http.post(baseUrl+'user/',data,{
        headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多