HttpResponse.getEntity().의 getContent() 응답 헤더, 자바 스크립트 코드, 응답 본문을 포함 반환 모든 ... (물론!) 등HTTP 응답 헤더를 제거하는 기능이 있습니까?
이를 정리하고 제공하는 기능이 있는가 응답 본문 만?
HttpResponse.getEntity().의 getContent() 응답 헤더, 자바 스크립트 코드, 응답 본문을 포함 반환 모든 ... (물론!) 등HTTP 응답 헤더를 제거하는 기능이 있습니까?
이를 정리하고 제공하는 기능이 있는가 응답 본문 만?
데이터를 InputStream에서 버퍼로 읽어야합니다. 이 정규식 검색 :
\r\n\r\n(.*)
이렇게하면 헤더 뒤의 정보를 얻을 수 있습니다.
또는 검색중인 경우, 빈 문자열로 교체 할 수 있습니다 : 당신은 당신의 자신의 방법으로 안드로이드를 사용하는 패턴을 필터링 할 수 있습니다
^.*?\r\n\r\n
. String을 전달하고 패턴 필터를 적용하여 원하지 않는 것을 제거하십시오.
public String filter(String searchString)
{
String content = searchString;
// Remove the new line characters.
Pattern newLineChar = Pattern.compile("\n+");
Matcher mLine = newLineChar.matcher(content);
while (mLine.find())
content = mLine.replaceAll("");
// Return the clean content
return content;
}
패턴이 매우 복잡해지고 원하는 표현을 거의 필터링 할 수 있습니다. (정규 표현식 등을 사용해야 할 수도 있습니다). 위의 예제는 줄 바꿈 (\ n)을 길이가 0 인 문자열로 바꿔서 문자열에서 모두 제거합니다. 패턴을 만들 수도 있고 아니면 다른 것을 제거하기 위해 다시 반복 할 수도 있습니다.
은 또한 일이에 대한 수입의 몇 가지가 필요합니다
import java.util.regex.Matcher;
import java.util.regex.Pattern;
나는 당신의 코드를 시도했다. 컴파일하지만 어떤 이유로 든 예상대로 작동하지 않습니다. 코드에 오류가 없습니까? –
나는 당신이 의미하는 바를 이제는 이해했다고 생각한다 : 당신은 예제로 이것을 제공했다 (응답 헤더가 아닌 개행을 제거하기위한 것). 전체 응답 헤더를 식별하고 빈 문자열로 바꾸는 정규식은 달라야합니다. 맞습니까? –
@Regex Rookie, 네, 이것은 예일 뿐이며 철저한 접근법은 아닙니다. 정규식은 다를 것입니다. –
정규식 "\ 연구 \ n \ 연구 \ n (*.)"원시 HttpResponse에에 일치하는 검색 결과가 없습니다. getEntity(). getContent() (당연히 InputStream에 배치). 왜 그런가? –
하지만 "() (. +)"이 작동합니다. 왜 지금 어떻게되는지, 그리고 이것이 무엇을 의미하는지 확인할 것입니다. –
원시 혼란의 원인을 찾은 것 같아요 : 원시 HttpResponse.getEntity(). getContent()는 ** **로 시작합니다. 이는 이미 응답 본문임을 의미합니다. 나는 때로는 너무 장님이 될 수도 ... –