如何在Java(Android)中将字节数组列表作为json参数发送?

时间:2015-11-18 05:48:22

标签: java android retrofit

我需要将一个byte []列表作为json参数发送到.net(wcf)服务器。可能吗?或者我应该进行base64编码并继续?

例如,我需要在json对象中传递sessionId(String)和datalist(ArrayList<byte[]>)。我正在使用Retrofit Library,创建请求模型POJO并发送。 sessionId已在服务器中收到,但对于&lt; datalist&#39;,服务器收到空。

先谢谢

1 个答案:

答案 0 :(得分:0)

尝试此代码,这是将JSON数据发送到restful Web服务的方法:

JSONArray jsonArray=new JSONArray();
ArrayList<byte[]>arrayList=new ArrayList<byte[]>();
Iterator<byte[]> itr=arrayList.iterator();
while (itr.hasNext()) {
        byte[] bs = (byte[]) itr.next();
        JSONObject temp=new JSONObject();
        temp.put("byte",bs.toString());
        jsonArray.put(temp);
}

// create HttpClient

HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
StringEntity se = new StringEntity(jsonArray.toString());

se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
HttpResponse response = httpclient.execute(post);
InputStream inputStream = response.getEntity().getContent();
// convert inputstream to string