【发布时间】:2013-04-22 06:19:01
【问题描述】:
我有一个 httpurlconnection 代码,用于将数据发布到服务器。当我尝试发送小数据时没关系,但是当我尝试发送 base64 图像字符串时,服务器没有正确接收到该字符串。我检查了从 jpg 转换的 base64 字符串,编码没问题。因此,导致字符串损坏的 http 进程存在问题。最初我认为可能是导致问题的大图像,但使用非常小的图像只会将部分图像传输到服务器,其余部分已损坏。 有人可以建议我如何将 base64 图像字符串发送到服务器。我的代码如下:
HttpURLConnection hpcon= (HttpURLConnection) Url.openConnection();
hpcon.setRequestMethod("POST");
hpcon.setConnectTimeout(5 * 1000);
hpcon.setDoOutput(true);
OutputStreamWriter osw= new OutputStreamWriter(hpcon.getOutputStream());
osw.write(data);
osw.close();
数据类似于:
key=YeP1r&nodeId=5&typeId=9&status=0&eventImage=imageString
【问题讨论】:
-
@Anirudh 它是其他参数,例如使用的密钥和 base64 图像字符串以及服务器处理所需的其他此类参数。
-
您没有设置任何内容类型,您是否尝试过明确设置
Content-Type? -
应该是“text/plain”还是我需要为base64添加一些特定的东西? hpcon.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
-
@NandkumarTekale 已经这样做了。我不知道为什么,但每次我在代码中添加一行尝试指定任何内容类型(utf 或多部分)时,都不会将图像发布到服务器。事实上,没有请求发送到服务器。如果我删除这些行,则会发送图像,但如前所述,它已损坏。
标签: java string image base64 httpurlconnection