1. 程式人生 > >Java傳送非同步post . Spring 最簡單的非同步傳送(非阻塞post)

Java傳送非同步post . Spring 最簡單的非同步傳送(非阻塞post)

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<ResponseEntity<String>> listenableFuture = client.postForEntity(URL, new HttpEntity<Object>(jsonObject), String.class);
        listenableFuture.addCallback(new SuccessCallback<ResponseEntity<String>>() {
            @Override
            public void onSuccess(ResponseEntity<String> 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<ResponseEntity<String>> listenableFuture = client.postForEntity(URL, new HttpEntity<Object>(postStr), String.class);
        listenableFuture.addCallback(new SuccessCallback<ResponseEntity<String>>() {
            @Override
            public void onSuccess(ResponseEntity<String> 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");
    }

相關推薦

Java傳送非同步post . Spring 簡單非同步傳送(阻塞post)

Java Spring 怎麼非同步傳送post請求?如果你跟我一樣用的Spring 4.0 版本或以上的話,最簡單的方式就是使用AsyncRestTemplate我用的是fastJson,來post Json 資料原始碼如下,URL 是post 連結, 第二個引數是資料, 第

java專案中ehcache快取簡單用法

    java專案中ehcache快取最簡單用法:   1.下載ehcache-core-2.4.3.jar複製到專案的lib目錄下 2.新建ehcache.xml檔案,放置在專案src目錄下的resource目錄下。ehcache.xml

Spring 簡單的注入以及原理分析

spring 是直接讀取位元組碼解析上面的註解,只要是配置了@compponent ,@service註解的類,都會在spring 被解析和例項化,後面可以直接用Context來獲取類例項操作。 通過配置檔案 component-scan 和 在類上註解Component來實現最簡單配置 包

Java的異常Exception----(簡單明瞭的總結)

1、什麼是異常?       程式開發和執行過程中會出現編譯錯誤和執行錯誤。編譯錯誤容易被發現並排除,而執行錯誤(邏輯錯誤和異常)很難預料。因此為了程式的穩定性和可靠性,就需要對程式異常處理和保護。

在 C/C++ 非同步 I/O 中使用 MariaDB 的阻塞介面

對 C/C++,MySQL 提供的庫傳統上都是阻塞操作,因此適合多執行緒 / 程序伺服器架構程式設計。但是如果用 C/C++ 編寫伺服器,往往對效能會有極致要求,此時採用非阻塞的非同步 I/O 才是更好的框架。 所幸,從 MySQL fork 出來的 MariaDB

簡單易懂的對稱加密

        北京的張三發了一個快遞到廣州的李四,途中經過了上海,上海快遞中心出現了一個黑客老王,他偷偷打開了張三給李四的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。        HTTP的資料包

Java簡單實現Socket阻塞通訊

        用java實現socket C/S通訊很簡單,很多教科書上都有。但是這些通訊模型大都是阻塞式的,其弊端也很明顯:一方必須要接收的到對方的訊息後,才能編輯自己的訊息發出。同樣對方也要一直等待這條訊息收到後才能傳送新的訊息。用網路通訊的知識講,大概就是半雙工通訊

Spring webflux--響應式、阻塞、事件驅型web框架

一、基本概念---阻塞(Blocking I/O)/非阻塞(Non-blocking I/O),同步(Synchronous I/O)/非同步(Asynchronous I/O): 在進行網路程式設計時,我們常常見到同步(Synchronous I/O)/非同步(As

Java併發包原始碼學習系列:基於CAS阻塞併發佇列ConcurrentLinkedQueue原始碼解析

[toc] ## 非阻塞併發佇列ConcurrentLinkedQueue概述 我們之前花了很多時間瞭解學習BlockingQueue阻塞佇列介面下的各種實現,也大概對阻塞佇列的實現機制有了一定的瞭解:阻塞 + 佇列嘛。 而且其中絕大部分是完全基於獨佔鎖ReentrantLock和條件機制conditi

圖解java的BI0,NIO,簡單直白的理解同步和非同步IO模型

最古老的javaIO通訊模式BIO,即阻塞IO,同步呼叫,效能低: 在伺服器端:有專門的客戶連線 接收器Acceptor,當有新的客戶端連線到達後,Acceptor負責第一步連線,然後給每一個客戶端連線建立一個新的執行緒來處理對應的業務;處理完成後,通過輸出流返回給客戶端,

ajax 非同步請求和同步請求的區別?(簡單的例子讓你明白)

注意:Jquery中的ajax在預設不寫async情況下,請求為非同步請求;即:async:true;一、最簡單的例子如下:當需要返回return false,且內部許可權不足時,需要初始化引數並驗證,從而判斷是否返回false。1、同步請求:當ajax執行完畢之後可給str

Spring JMS使非同步訊息變得簡單

非同步處理通訊是面向服務架構(SOA)的重要部分,因為企業中的許多系統通訊,尤其是跟外部系統通訊本來就是非同步的。Java訊息服務(JMS)就是用來編寫非同步訊息J2EE應用的API。使用JMS API的傳統訊息實現涉及到象這樣的一些步驟:查詢對列連線工廠、佇列資源以及在實

spring 整合 activeMQ非同步傳送郵件

一、訊息佇列的作用 1、非同步處理 2、流量削峰 3、應用解耦 4、日誌處理 二、此處展示的是非同步處理場景 1、構建maven專案,此處不做多餘的說明了,匯入MQ相關的jar包,注意版本的問題,這裡費了好多時間解決衝突 <!-- MQ start--&

Java-簡單傳送http get/post請求 呼叫介面/方法

例子如下:1.請求引數srequestUrl 是你要傳送的介面引數用map 存起來 sRet 是返回值 如果傳送的介面有的話就寫 然後呼叫 NetUtils.requset請求 (介面,引數,get/post(選擇一種傳送方式))String sRequestUrl ="ht

超方便、簡單版本:java 郵件傳送 (半分鐘寫完程式碼)

1. jar 和 郵箱設定 <!--郵件--> <dependency> <groupId>org.simplejavamail</groupId>

執行緒同步與非同步簡單圖解

前提 執行緒的同步和非同步是針對多核CPU而言的,沒有多核CPU就沒有非同步的概念(此時全是同步的)。 下面以四核CPU為例子,用圖解的方式看同步和非同步的區別: 同步: 可以看出,所謂同步,就是每次只有一個執行緒能去執行,即使有多的計算資源(在

IntelliJ IDEA 簡單配置搭建Spring MVC Java web Maven專案

原文地址:http://blog.csdn.net/qq_27093465/article/details/68961393 使用這個IntelliJ IDEA建立一個簡單的Java web maven專案,我在前面的文章裡面已經示範過了。 先看下專案目錄

Spring控制反轉的簡單說明

說明 實例化 一個 XML 處理 當前 現在 兩個 角色 現有角色如下: 一個接口Interface,兩個接口實現類InstatnceA、InstanceB,一個調用類User。 已有代碼如下: User類中實例化了一個InstatnceA對象,代碼如:Interface

Java對數組的操作(三)—比較兩個數組中的元素是否同樣的簡單方法

con data println test popu pan equal main spa 呵呵呵,實現Java比較兩個數組中的元素是否同樣的功能你是怎麽做的?看以下最簡單方法: import java.util.Arrays;

神級Java程序員 開車教你基礎開發,簡單 微型Java Web框架

padding ont 目的 簡單 json 破解 apach java學習 web 介紹: 它是Java中的開放源代碼(Apache License)微型Web框架,具有最小的依賴性和快速的學習曲線。 該項目的目標是在Java中創建一個易於使用和破解的微型Web框架。