자바 에서 비동기 post 를 보 냅 니 다. Spring 에서 가장 간단 한 비동기 전송 (비 차단 post)

2383 단어 자바spring
Java Spring 은 어떻게 다른 단계 로 post 요청 을 보 냅 니까?
나 와 같은 Spring 4.0 버 전 이상 을 사용한다 면 가장 쉬 운 방법 은 사용 하 는 것 이다.
AsyncRestTemplate
저 는 fastJSon 을 사용 하여 post JSon 데 이 터 를 사용 합 니 다.
원본 코드 는 아래 와 같 습 니 다. URL 은 post 링크 이 고 두 번 째 매개 변 수 는 데이터 입 니 다. 세 번 째 매개 변 수 는 필요 하지 않 습 니 다.
    public StringBuffer postHttpJsonDataAsyn(String URL, JSONObject jsonObject, final JSONObject responseJsonMap) throws IOException {
        // 发送异步post , 非阻塞, 发送完无需等待结果返回
        AsyncRestTemplate client = new AsyncRestTemplate();
        ListenableFuture> listenableFuture = client.postForEntity(URL, new HttpEntity(jsonObject), String.class);
        listenableFuture.addCallback(new SuccessCallback>() {
            @Override
            public void onSuccess(ResponseEntity result) {
                System.out.println("("+result.getStatusCode()+ ":"+result.getStatusCode().getReasonPhrase()+ "):"+result.getBody());
            }
        }, new FailureCallback() {
            @Override
            public void onFailure(Throwable ex) {
                System.out.println(ex);
            }
        });
        return new StringBuffer("finish postHttpJsonDataAsyn post");
    }

    @Override
    public StringBuffer postHttpStringDataAsyn(String URL, String postStr, JSONObject results) throws IOException {
        // 发送异步post , 非阻塞, 发送完无需等待结果返回
        AsyncRestTemplate client = new AsyncRestTemplate();
        ListenableFuture> listenableFuture = client.postForEntity(URL, new HttpEntity(postStr), String.class);
        listenableFuture.addCallback(new SuccessCallback>() {
            @Override
            public void onSuccess(ResponseEntity result) {
                System.out.println("("+result.getStatusCode()+ ":"+result.getStatusCode().getReasonPhrase()+ "):"+result.getBody());

            }
        }, new FailureCallback() {
            @Override
            public void onFailure(Throwable ex) {
                ex.printStackTrace();
                System.out.println(ex);
            }
        });
        return new StringBuffer("finish postHttpStringDataAsyn post");
    }

좋은 웹페이지 즐겨찾기