状況に応じてネットワーク経由で 1 つ以上のファイルを転送する必要があるシナリオがあります。ファイルのサイズは 700KB から 900KB です。アップロードが完了すると、アップロードされたファイルの数に関係なく、サーバーは 1 つの数字で応答します。Base64に変換した後、ksoap2ライブラリでアップロードしようとしていますが、失敗しました。SOAPヘッダーの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)