使用AngularJS调用WS-Rest Java
我在调用WS-Rest Java时遇到问题。我调用WS,但没有传递参数 我的java代码:使用AngularJS调用WS-Rest Java,java,angularjs,web-services,rest,Java,Angularjs,Web Services,Rest,我在调用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
@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对象时出错,因为参数为null。为了测试参数值,我创建了一个文件并将值放在这里,内容如下:
名称:空
姓:空
电子邮件:空
电话:空
Skype:null
密码:null
有人知道为什么不传递参数吗
谢谢
已解决:
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'}
})
谢谢灰熊 您正在以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'}
})