2017-09-29 96 views
1

新澤西州的WebMethod接收JSON和返回JSON,我創建了一個客戶端後用gzip編碼的JSON,我不知道它是編碼的JSON張貼正確的方式,我想確認請求正文是否真的被壓縮?後gzip壓縮JSON澤西服務

這是球衣的WebMethod

@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; 
} 

這是客戶端類消費球衣

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

要知道,你的請求被壓縮,必須有一個請求頭像Content-Encoding: gzip發送到服務器服務器要知道,他們必須解壓縮載荷

你的所作所爲是在你的代碼是正確的。

+0

我的同事試圖張貼壓縮JSON澤西方法,他獲得套接字錯誤?他告訴我我應該添加並註冊gzip ReaderInterceptor來使用壓縮的請求? – Siva

+0

你在說「消費」還是閱讀? – Optional

+0

我已經從NetBeans檢查請求的頭部和上述代碼不設定內容編碼的。如何設置內容編碼? – Siva