HTTP 헤더가 포함 된 문자열에서 데이터를 추출하는 더 나은 방법을 찾고 있습니다. 예를 들어, "Content-Length : 160 \ r \ n"문자열의 내용 길이 부분에서 160을 얻고 싶습니다.HTTP 헤더가 포함 된 문자열에서 값 추출
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);
을하지만 지저분한 보인다는 문자열의 끝에서 "콘텐츠 길이"를 얻기 만 좋다 : 순간
나는이 일을하고있다. int 값 또는 문자열 값을 얻기 위해 작동하도록 조정할 수있는 HTTP 헤더를 포함하는 문자열에서 값을 추출하는 더 보편적 인 솔루션이 있습니까?또한 요청 후에 브라우저에서 데이터를 다시 반환 할 수 있어야한다는 것을 언급해야합니다. 이는 내 이해에서 HttpURLConnection 사용의 이점을 누리지 못하게합니다.
헤더를받는 방법은 무엇입니까? – kaysush
@ Suku, 나는 그들을 문자 단위로 String에 저장하려고한다. 나는 지금 당장 코드에서 벗어나고 있지만 InputStreamReader를 통해 있다고 생각한다. –
분명히 그것은'Reader' 여야 만하지만'Reader'의 근원은 내 답변에서 언급 한대로'HttpURLConnection'을 사용하여 진행할 수 있다는 뜻입니다. – kaysush