2017-09-29 10 views
1

저지의 WebMethod는 JSON을 수신하고 JSON을 반환, 내가 GZIP 인코딩과 JSON을 게시하는 클라이언트를 만들어, 나는 그것이 json으로 게시하는 인코딩 할 수있는 권리 방법입니다 아무 생각, 내가 원하는 없었다 요청 본문이 실제로 압축되었는지 여부를 확인 하시겠습니까? 후 gzip으로 압축 된 JSON이

이 클라이언트 클래스는 요청이 압축 것을 알고 저지를

import javax.ws.rs.client.Client; 
import javax.ws.rs.client.ClientBuilder; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.client.Entity; 
import javax.ws.rs.core.Response; 
import com.gzip.RGZIP; 
import org.glassfish.jersey.message.GZipEncoder; 
public class rclient { 
public static void main(String[] args){ 
    String REST_URI = 
    "http://localhost:8084/TestGZip/webresources/gzip/getgzip"; 
    Client client = ClientBuilder.newClient(); 
    client.register(GZipEncoder.class); 
    RGZIP rzip = new RGZIP(); 
    rzip.docid = 1234; 
    rzip.docdata = "Working..";   
    Response r = 
      client.target(REST_URI).request(MediaType.APPLICATION_JSON) 
      .post(Entity.entity(rzip, MediaType.APPLICATION_JSON)); 
    System.out.println(r.readEntity(String.class)); 
} 
} 

답변

0

을 소비하는 것입니다

@POST 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
@Path("/getgzip") 
public RPGZIP postDocument(RGZIP gzip){   
    RPGZIP _response = new RPGZIP(); 
    _response.rpid = gzip.docid; 
    _response.rpdata = gzip.docdata; 
    return _response; 
} 

저지의 WebMethod입니다, 서버로 전송 Content-Encoding: gzip 같은 요청 헤더가 있어야합니다 서버는 당신이 무슨 짓을

코드에서 올바른 페이로드를 압축 할 필요가 있음을 알 수있는.

+0

내 동료는 저지 방식으로 압축 된 JSON을 게시하려고 그는 소켓 오류가? 그는 압축 된 요청을 사용하기 위해 gzip ReaderInterceptor를 추가하고 등록해야한다고 말했습니다. – Siva

+0

"소비"또는 독서에 대해 이야기하고 있습니까? – Optional

+0

나는 netbeans에서 요청의 헤더를 확인하고 위의 코드는 콘텐츠 인코딩을 설정하지 않습니다. 콘텐츠 인코딩을 설정하는 방법? – Siva