2016-09-06 8 views
0

私はmultipart/form-dataを構築するjavaコードを持っていますが、それでも問題はありません。Javaを使用し、Apacheライブラリを使用しないでmultipart/form-dataを構築する

DataOutputStreamクラスでは、.writeUTFメソッドを使用する場合を除いて、Cyrilic文字は処理されないため、2つの追加バイトが追加されるため、サーバー側で問題が発生します。ここで

は、コードのbegginingです:

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
DataOutputStream dos = new DataOutputStream(bos); 

次に、テキストバイトと画像バイトがドスオブジェクトに書き込まれ、最終的に我々は

bos.toByteArray(); 

を持って、あなたは他に何私ができる知っていますかDataOutputStreamおよびByteArrayOutputStreamの代わりに使用してください。

+0

OkHttp3は便利なマルチパートエンティティビルダー –

答えて

1

DataOutputStreamには、指定されたエンコードでStringsを書き込む適切な方法がありませんが、次のようにBufferedWriter/OutputStreamWriter、あなたがwrite(byte[] b, int offset, int len)を使用することができます。

byte[] bytes = myString.getBytes("UTF-8"); // or whichever encoding you want 
dataout.write(bytes, 0, bytes.length); 
+0

10倍を持っています。私は試してみます –

+0

しかし、文字列を書いていて、 'DataOutputStream'の他のメソッドを使用していないのであれば、新しいBufferedWriter(新しいOutputStreamWriter(bos、" UTF-8 ")); – Kayaman

+0

私は同様に画像バイトを書いています。そのマルチパート形式 –

関連する問題