Android:通过Http POST发送byte []数组

时间:2011-06-15 15:27:04

标签: android http-post

我能够对参数字符串进行POST。我使用以下代码:

String parameters = "firstname=john&lastname=doe";
URL url = new URL("http://www.mywebsite.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestMethod("POST");

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write(parameters);
out.flush();
out.close();
connection.disconnect();

但是,我需要对二进制数据进行POST(以byte []的形式)。

不确定如何更改上述代码来实现它 有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:9)

看看这里 Sending POST data in Android

但是使用ByteArrayEntity。

byte[] content = ...
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new ByteArrayEntity(content));           
HttpResponse response = httpClient.execute(httpPost);

答案 1 :(得分:6)

您可以先对数据进行base-64编码。看一下恰当命名的Base64类。

答案 2 :(得分:4)