AndroidStudioでhttp通信の実装をしているところで、詰まっていた原因がタイトルのメソットでした。
指摘して頂いて修正したところ、問題は解決しましたが、なぜこれが原因かわからなかったので質問させて下さい。
きっかけとなっている、私の質問を前提に質問させて頂きます。
https://docs.oracle.com/javase/jp/6/api/java/net/HttpURLConnection.html
javaのリファレンスを見ると
setChunkedStreamingMode(int chunklen)
このメソッドを使用すれば、コンテンツ長があらかじめわかっていない場合に、内部バッファーを使用しない HTTP 要求本体のストリーミングを有効にすることができます。
と
setFixedLengthStreamingMode(int contentLength)
このメソッドを使用すれば、コンテンツ長があらかじめわかっている場合に、内部バッファーを使用しない HTTP 要求本体のストリーミングを有効にすることができます。
というふうに記載があります。
しかし、受信するデータが固定のサイズとは限らないので、本来「setChunkedStreamingMode」を使う方が正しいのではないでしょうか?
なぜ、setFixedLengthStreamingModeでないとサーバーが受け付けなかったのでしょうか…。
また、受信するデータが可変の場合直値を引数に入れてしまうと「サイズが足りない!」というようなエクセプションが発生してしまうのではないでしょうか?
素朴な疑問ですが、教えて頂きたいです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。