我试图通过POST检索数字数组,发送到服务器的原始数据是:
bucket2=0&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&bucket1=0&currPlayer=0&bucketID=0
这包含一个来自javascript控制台的数组桶=[6,6,6,...]:
Object { bucket2: 0, buckets: Array[12], bucket1: 0, currPlayer: 0 }
我使用以下代码发布:
$.ajax({
type: "POST",
url: baseUrl + "move",
data: game,
success: function(data) {
// console.log(data);
update(data);
}, error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
我的服务器代码是:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
@Path("/move")
public String move(@PathParam("currPlayer") int currPlayer,
@PathParam("bucket1") int bucket1,
@PathParam("bucket2") int bucket2,
@PathParam("buckets") List<Integer> buckets,
@PathParam("bucketID") int bucketID){
System.out.println("currPlayer: " + currPlayer);
System.out.println("bucket1: " + bucket1);
System.out.println("bucket2: " + bucket2);
System.out.println("buckets: " + buckets);
System.out.println("bucketID: " + bucketID);
return "";
}
服务器输出为:
currPlayer: 0
bucket1: 0
bucket2: 0
buckets: []
bucketID: 0
为什么它不获取数组值?
编辑:在创建这个线程之前,我试着使用@FormParam,但仍然不起作用
您正在消费:
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) //Meaning the content-type is `application/x-www-form-urlencoded`.
然而,您正在使用PathParam检索参数。对于内容类型application/x-www-form-urlencoded,可以使用注释读取参数。
哦,您的HTTP多值表单参数的格式必须为:
buckets=6&buckets=6
无需在标志前面设置[]。
我希望这能有所帮助。
下面的代码有效 下面的代码是抛出错误 低于异常 [[FATAL]找不到public javax类型参数的注入源。ws。rs.core。回复com。特里姆布尔。帕斯。大声点。metricscollector。资源MetricsResource。索引1处的PostMetricData(java.lang.String,java.lang.String)。;source='ResourceMethod{
问题内容: 我正在使用Jersey创建REST API。我有一个POST方法,作为该方法的响应,应该将用户重定向到自定义URL ,因为它不必与API相关。 我在这里查看有关此主题的其他类似问题,但没有找到任何我可以使用的东西。 问题答案: 我建议更改JAX- RS注释方法的签名以返回对象。根据您打算重定向是永久重定向还是临时重定向(即客户端是否应更新其内部引用以反映新地址),该方法应构建并返回对应
问题内容: 我在应用程序中使用Jersey 1.8。我正在尝试在服务器上使用数据。数据是类型的。 有没有一种方法可以将所有数据(可能是)收集到一个对象中。 我碰到泽西岛的。但是使用此功能需要我使用,如果参数数量巨大,这可能很乏味。也许这是一种方法: 上面的代码使用并呈现对象中的表单数据。 处理此错误可能会很容易出错,因为任何放错位置和split()都将返回损坏的数据。 我在大多数工作中都使用Uri
我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?
我想创建一个类的单例实例,这个类不是作为资源或服务在Jersey中涉及的,但希望它的依赖项从Jersey ServiceLocator中注入。 我可以在ResourceConfig构造函数中手动注册该类,然后将ResourceConfig传入Grizzly工厂方法,如下所示:
我对web服务非常陌生,所以我从基本示例开始。这与文件上传有关。我正在为非maven开发人员使用最新(2.17)版本的Jersey捆绑包。它指出: 捆绑包包含JAX-RS 2.0 API jar、所有核心泽西模块jar以及所有必需的第3方依赖项 .问题是我不能编译这部分: Jersey 2.17捆绑包中似乎不存在FormDataParam,尽管docs表示存在。2.17捆绑包是否不完整?如何解决此