2012-02-13 2 views
9

간단한 http 응답 구문 분석기 구현이 있습니까? 아이디어는 완전한 응답을 하나의 큰 문자열로 넣고 인터페이스를 통해 상태 코드, 본문 등을 검색 할 수 있어야합니다.Java 용 간단한 http 응답 파서가 있습니까?

요청/응답은 TCP/IP를 통해 직접 전송되지 않으므로 코어 rfc 2616 구문 분석 구현 외에는 아무 것도 필요하지 않습니다.

답변

11

예를 들어 Apache HttpClient을 사용하는 경우 헤더 또는 메시지 본문을 추출하는 데 사용할 수있는 Java 응답 객체가 제공됩니다. 당신은 단지 reponse을 구문 분석하려면 다음 샘플을

HttpClient client = new DefaultHttpClient(); 
HttpResponse response = client.execute(new HttpGet("http://www.foo.com/")); 
Header[] headers = response.getAllHeaders(); 
InputStream responseBody = response.getEntity().getContent(); 

을 고려, 아마도 HttpMessageParser 유용 할 것입니다 : 임의의 데이터 소스에서 HTTP 메시지를 구축하기위한

추상 메시지 파서.

+1

IMHO OP가 그가 어쩌면 문자열에있는 원시 HTTP 응답을 구문 분석하려고합니다 (어쩌면 일부 덤프에서). –

+0

토마스가 옳다. 원시 응답으로 작업하고 있습니다 ... URI가없고 HttpGet이 작동하지 않습니다. – mibollma

+0

@mibollma,'HttpMessageParser'를 사용하여 두 번째 제안을보세요 –

0

나는 apache http api에 빌드 된 http-request을 권장합니다.

HttpRequest<String> httpRequest = HttpRequestBuilder.createGet(someUri, String.class) 
    .responseDeserializer(ResponseDeserializer.ignorableDeserializer()) 
    .build(); 

public void send(){ 
    ResponseHandler<String> responseHandler = httpRequest.execute(); 
    String responseBody = responseHandler.get(); 
    int statusCode = responseHandler.getStatusCode(); 
} 

나는 사용하기 전에 반드시 읽어 보시기 바랍니다.

관련 문제