我有一个场景,我需要根据网络情况传输一个或多个文件。文件大小在 700KB 到 900KB 之间。上传完成后,无论上传多少文件,服务器都会回复一个数字。在将其转换为 Base64 后,我一直在尝试使用 ksoap2 库上传它,但它失败了。当我的肥皂标题 xml 大小在 1048000 左右的字符附近时,它会失败。
然后我决定改变我的上传方式,并希望使用 HttpURLConnection 或 http 客户端。我无法决定哪一个对我的场景有效。
谢谢
这是代码
代码:
InputStream is = getResources()
.openRawResource(R.raw.file_name);
int size = 0;
// Read the entire resource into a local byte buffer.
byte[] buffer = new byte[1024];
try {
while ((size = is.read(buffer, 0, 1024)) >= 0) {
baos.write(buffer, 0, size);
}
is.close();
buffer = baos.toByteArray();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
base64string = new String(Base64.encode(buffer, Base64.DEFAULT));
错误
org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@4101ce48)
at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:2035)
at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:126)
at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)