HTTP ヘッダーを含む文字列からデータを抽出するより良い方法を探しています。たとえば、「Content-Length: 160\r\n」という文字列のコンテンツ長部分から数値 160 を取得したいと考えています。
HTTP ヘッダーのすべてのデータの前に名前、コロン、およびスペースがあり、値の直後に「\r」および「\n」文字が続くようです。
現時点で私はこれをやっています:
int contentLengthIndex = serverHeader.lastIndexOf("Content-Length: ");
int contentLastIndex = serverHeader.length()-1;
String contentText = serverHeader.substring(contentLengthIndex + 16, contentLastIndex);
contentText = contentText.replaceAll("(\\r|\\n)", "");
int contentLength = Integer.parseInt(contentText);
しかし、それは面倒なようで、文字列の最後にある「Content-Length」を取得するためだけに適しています。int 値または String 値の両方を取得するために調整できる HTTP ヘッダーを含む String から値を抽出するための、より普遍的なソリューションはありますか?
また、接続はリクエスト後にブラウザにデータを返すことができる必要があることにも言及する必要があります。これは、私の理解では、HttpURLConnection を使用する利点を享受することを妨げています。