如何使用android volley库将位图图像上载到服务器?
如何使用android volley库将位图图像上载到服务器?我正在尝试使用android volley将图像上载到服务器。如果安卓截击中没有这样的选项,你能给我建议一下让网络动作更快的最佳方法吗。如何使用android volley库将位图图像上载到服务器?,android,bitmap,bitmapimage,android-networking,android-volley,Android,Bitmap,Bitmapimage,Android Networking,Android Volley,如何使用android volley库将位图图像上载到服务器?我正在尝试使用android volley将图像上载到服务器。如果安卓截击中没有这样的选项,你能给我建议一下让网络动作更快的最佳方法吗。 欢迎您向我发送有关此主题的任何可用在线教程的链接据我所知,将大量数据(如图像)发送到远程服务器并不是正确的选择。无论如何,如果您想要发送一个映像,您应该扩展请求类并实现您的逻辑。 您可以以工具箱包中已有的一些类为例。 否则,您可以使用HttpURLConnection并实现您的逻辑,首先您必须设置:
欢迎您向我发送有关此主题的任何可用在线教程的链接据我所知,将大量数据(如图像)发送到远程服务器并不是正确的选择。无论如何,如果您想要发送一个映像,您应该扩展请求类并实现您的逻辑。 您可以以工具箱包中已有的一些类为例。 否则,您可以使用HttpURLConnection并实现您的逻辑,首先您必须设置:
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
其中边界是您喜欢的字符串。
然后,您必须从连接中获取输出流,并开始编写部件
public void addFilePart(String paramName, String fileName, byte[] data) throws Exception {
os.write( (delimiter + boundary + "\r\n").getBytes());
os.write( ("Content-Disposition: form-data; name=\"" + paramName + "\"; filename=\"" + fileName + "\"\r\n" ).getBytes());
os.write( ("Content-Type: application/octet-stream\r\n" ).getBytes());
os.write( ("Content-Transfer-Encoding: binary\r\n" ).getBytes());
os.write("\r\n".getBytes());
os.write(data);
os.write("\r\n".getBytes());
}
等等。
我写了一篇关于它的教程(因为你在问一个链接)。你可以看看
如果您不喜欢HttpUrlConnection,可以更轻松地使用apachehttp客户端
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
然后:
MultipartEntity multiPart = new MultipartEntity();
multiPart.addPart("param1", new StringBody(param1));
multiPart.addPart("param2", new StringBody(param2));
multiPart.addPart("file", new ByteArrayBody(baos.toByteArray(), "logo.png")); // Your image
希望它能帮助你 您可以扩展请求的子类,覆盖
getBody()
方法,并在getBody()
方法中返回图像的字节数据。可以使用volley lib将图像发送到服务器,而无需使用多部分类。
您只需将图像以base64格式发送到服务器。
这对我很有用。你能准确地告诉我们为什么你认为截击不是发送大数据的正确选择吗?(imho图片是中型的,不是大型的)嗨@footman,你介意分享一下你是如何做到这一点的吗?我在使用截击将图像发布到服务器时遇到问题。总是得到400的回复。介意共享吗?Base64不是将图像传递给web服务的好方法。它只适用于小图像。一旦开始处理较大的图像,就会遇到各种各样的问题(请求实体变大等)