URLConnectionで可能な最も低いレベルのバイトカウントを取得しようとしています。私はすでに2つのストリームを通過するデータをカウントするようになりましたが、Apache Commons IOからはCountingInputStreamとCountingOutputStreamとなりましたが、バイトカウントは私が送信するボディサイズと等しいです+レスポンスボディサイズは戻ってきます。URLConnectionローレベルバイトカウント
HttpClientでは、私はMeasuringClientConnManagerを持っていましたが、それはより低レベルのバイトカウントであると思われます。
最も正確な値を得るために、私は、これらの方法でこれらのライブラリでカウントを比較TrafficStatsを使用しています:
public static long getCurrentRx(Context context){
int uid = context.getApplicationInfo().uid;
return TrafficStats.getUidRxBytes(uid);
}
public static long getCurrentTx(Context context){
int uid = context.getApplicationInfo().uid;
return TrafficStats.getUidTxBytes(uid);
}
public static long getCurrentNetworkUsage(Context context){
return getCurrentRx(context) + getCurrentTx(context);
}
public static long getDiffNetworkUsage(Context context, long previousNetworkUsage){
return getCurrentNetworkUsage(context) - previousNetworkUsage;
}
私はURLConnectionのよりHttpClientを持つはるかに近い値を取得し、これらのメソッドを使用します。
つの質問:
のURLConnectionに来るどのように、私はOutputStreamの上のヘッダが送信されるいくつかのバイトサイズの表示を参照してくださいませんか?どのように体の大きさしか見えませんか?ヘッダーはどこですか? URLの呼び出し? DNS解決バイト?
URLConnectionライブラリへの呼び出しがネットワークインターフェイス上で送信するすべてのバイトを測定する方法はありますか?最低レベル、より良い!