Resteasy @FormParam返回null

bli*_*n12 4 jax-rs java-ee resteasy wildfly-8

任何人都可以帮我这个.

我使用带有wildfly 8.1.0的resteasy创建了一个Web服务,但@FormParam总是返回null.

UserService.java

Path("/user")
@Produces(MediaType.APPLICATION_JSON)
public class UserService {

    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/create")
    public String create(@FormParam("first_name") String firstName, @FormParam("last_name") String lastName,
            @FormParam("email") String email, @FormParam("username") String username,
            @FormParam("password") String password, @FormParam("address") String address,
            @FormParam("country") String country, @FormParam("zip") String zip, @FormParam("ssnlast4") String ssnlast4,
            @FormParam("mobile") String mobile, @FormParam("dob_month") String dobMonth,
            @FormParam("dob_year") String dobYear, @FormParam("reg_type") String regType,
            @FormParam("avatar") String avatar) {

        String str = firstName  + ":" + lastName + ":" + email + ":" + username + ":" + password + ":" + address + ":" + country + ":" + zip+ ":" + ssnlast4 + ":" + mobile;
        return str;
    }
}
Run Code Online (Sandbox Code Playgroud)

POSTMAN用来测试服务. 在此输入图像描述

回来会 {null:null:null:null:null:null:null:null:null:null}

谢谢.我很感激.

Pau*_*tha 12

@FormParam用于application/x-www-form-urlencoded内容类型.form-data您在Postman中选择的按钮将创建多个部分数据.这是两种不同的动物.

如果您希望您的示例有效,则应选择x-www-form-urlencoded按钮,然后开始添加键/值对.关键是@FormParam("key")注入价值.

此外,我会注释您的方法,@Consumes(MediaTyp.APPLICATION_FORM_URLENCODED)以便任何内容类型不会application/x-www-form-urlencoded失败的请求.

如果您确实想使用multipart,那么这是一个不同的故事.如果你确认这是你想要的,我们可以走这条路.我不认为它在这里有用.

另外,您可以单击Preview按钮,您将看到每种类型的发送方式的主要区别