Java 在POST RequestParams AsyncHttpClient Android应用程序中发送int数组
我目前正在开发一个android应用程序,它向RubyonRails中的API发送一些请求 我必须发出请求,其中一个参数是Java 在POST RequestParams AsyncHttpClient Android应用程序中发送int数组,java,android,ruby-on-rails,ruby,arrays,Java,Android,Ruby On Rails,Ruby,Arrays,我目前正在开发一个android应用程序,它向RubyonRails中的API发送一些请求 我必须发出请求,其中一个参数是ArrayList。我这样通过: ArrayList<Integer> userIds = ...; //... RequestParams params = new RequestParams(); params.put("conversation[user_ids]", userIds); 在API中,我得到 "user_ids"=>{"0"=>
ArrayList
。我这样通过:
ArrayList<Integer> userIds = ...;
//...
RequestParams params = new RequestParams();
params.put("conversation[user_ids]", userIds);
在API中,我得到
"user_ids"=>{"0"=>"1", "1"=>"2"}
我真正想要的是
"user_ids"=>{[1,2]}
或者类似的
如何向API发送
ArrayList
,使其在ruby中被识别为数组而不是散列?为此,我无法修改服务器中的ruby代码,只能修改android应用程序中的客户端。如果您想通过转换接收到的参数从后端点(ROR)修复它,可以使用一些ruby代码轻松完成,如:
{"0"=>"1", "1"=>"2"}.values.map(&:to_i)
# > [1,2]
我对Android不太了解,但要将整数数组传递给rails,您需要使用
conversation[user_ids][]=1&converstaion[user_ids][]=2&conversation[user_ids][]=3
所以我猜你可以迭代ArrayList
,然后
params.put("conversation[user_ids][]", integer_member);
对于数组的每个成员。关于:
userIds.toArray()
?什么是“作为散列”?它是一个HashMap
还是其他类?同样,API接收一个hash。如果我发送一个int[],API将接收引用,而不是数组本身。ruby on rails散列,因为API将请求发送给它在ruby on rails中生成的。我只是不知道如何发送整数数组,所以rails将其识别为整数数组而不是散列。而userid是一个数组列表。尝试提供一个int数组。
params.put("conversation[user_ids][]", integer_member);