2012-08-23 2 views
0

내 프로그램은 https 사이트에 여러 개의 POST 요청을해야하고 새 요청을 수행 할 때마다 SSL 핸드 셰이크를 수행해야합니다. 그러나 처음에는 핸드 쉐이크를 수행 한 다음 기존 핸드 쉐이크를 사용하여 새로운 핸드 쉐이크없이 다른 요청을 수행하는 것처럼 보입니다. 나중에 핸드 셰이크를하지는 않을 것이라고 확신합니다. 요청을 처리하고 응답을 수신하는 데 처음으로 700 밀리 초가 걸리지 만 이후에는 약 30 밀리 초 밖에 걸리지 않기 때문입니다. (내가 여기에 몇 가지 속성을 실종?)Jersey 클라이언트로 각 POST 요청에 대한 새 연결을 만드는 방법

SSLContext context = SSLContext.getInstance("SSL"); 
    context.init(kms, trustAllCerts, null); 
    SSLContext.setDefault(context); 

    ClientConfig config = new DefaultClientConfig(); 
    config.getProperties().put(ClientConfig.PROPERTY_READ_TIMEOUT, timeout * 1000); 
    config.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, false); 
    config.getFeatures().put(ClientConfig.FEATURE_DISABLE_XML_SECURITY, true); 
    client = Client.create(config); 

그리고 여기에 내가 실제 요청을 만드는 방법은 다음과 같습니다 :

ClientResponse cr = service.type(MediaType.APPLICATION_XML).accept(MediaType.APPLICATION_XML).post(ClientResponse.class, batch); 

(서비스 변수는 빌더가 여기

내가 클라이언트를 초기화하는 방법 클래스는 ClientRequest를 생성하며 URL이 지정된 곳입니다.)

어떤 아이디어입니까?

+1

"새 요청을 할 때마다 SSL 핸드 셰이크를 수행해야합니다." 왜? –

+0

서버가 요청을 처리하는 방법을 테스트하기 위해이를 처리 할 수 ​​있습니다. – user1619880

답변

0

HTTP에는 지속적인 연결이 있고 SSL에는 다시 시작할 수있는 세션이 있습니다. 둘 다 특별히 수행하려는 것을 방지하기위한 것입니다.

서버의 내부를 탐구한다면 테스트 목적으로 어떻게 든 꺼낼 수는 있지만 프로덕션 환경에서 배포하는 것이 좋지 않은 구성을 테스트하는 것이 실제로는 보이지 않습니다.

+0

설명해 주셔서 감사합니다. Jersey 프레임 워크에서 해제 할 올바른 설정을 찾을 수 없었기 때문에 Jersey 이외의 다른 것을 사용해야 할 수도 있습니다. – user1619880

관련 문제