王曉琳
基于HttpClient的代購同步技術研究與實現
王曉琳
網絡代購作為電子商務的一種形式,已經發展的十分成熟。人們不再僅限于參與本國的網絡購物,而是越來越多地參與各國知名電子商務網站的購買活動。由于種種原因,導致跨國度網上購物難以實現,于是出現了代購網站,提供國外代購服務。提出的代購同步技術,是一種新型的代購網站解決模型。首先,使用HttpClient抓取國外電子商務網站頁面的數據用于展示,保證信息的實時性、減少了系統數據庫的開銷。再使用HttpClient將用戶的每一次購買請求,同步到國外的電子商務網站當中,直接完成真正的購買行為。該模型具有更好的自動性、通用性和穩定性。
電子商務;HttpClient;網絡代購;代購同步技術
隨著電子商務技術的愈發成熟,網絡購物的概念已經深入人心,越來越多的人參與到網絡購物活動中。人們已不再僅限于通過電子商務網站購買本國的商品,而是想通過網絡購物的途徑,購得更優質更廉價的國外商品。但是,由于缺少外國銀行賬號難以支付,語言溝通的障礙,商品賣家不愿將商品寄往國外等諸多客觀因素,導致人們無法順利參與國外電子商務網站的網絡購物。于是,網絡代購這一種嶄新模式電子商務的模式出現并迅速普及開來。通過網絡代購的方式,人們可以方便地購買心儀的進口商品,同時可以避免繳納巨額的進口關稅。許多進口商品的高品質和低價格,也吸引更多的人開始參與網絡代購。國內網絡代購網站的形式和數量,已經發展的十分成熟,有穩定的購買和郵寄渠道。2013年上海自貿區的成立,進一步刺激了網絡代購行業的發展。商品代購覆蓋的國家數量不斷增加,提供許多具有國家特色的商品。現在,人們只需要在代購網站挑選和購買商品,就可以通過代購的方式,獲得心儀的進口商品。在代購網站的整個購物操作,與參與普通的網絡購物相同。
為了實現此類網絡代購,一種針對國外電子商務網站的代理行業應運而生。現階段主要存在兩種代購方式:一種是通過線下委托代理人或者代理公司進行購買,另一種是使用專業的代購網站。前者需要先告知需要的商品,才能獲取代購商品的價格和運費等信息,交互性太差,且整個操作流程比較繁雜。而后者因為友好的交互以及便捷的操作,逐漸成為主流方式。人們通過代購網站,如同參與國內網絡購物一樣,方便地實現與國外網站的同步購買。人們在代購網站上的每次購買操作,均實時地同步到實際的電子商務網站,實現真實的購買。代購網站實現核心功能需要考慮以下幾點:1、實時地獲取最新的商品信息;2、友好的購物交互體驗;3、同步購買操作需要快速和低延時。
針對以上問題,本文提出了一種穩定和通用的代購同步技術實現方法。通過網絡爬蟲技術,使用HttpClient工具包抓取國外電子商務網站的數據信息用于展示。本地提交出價信息后,自動同步購買操作到商品所在電子商務網站,完成真正的網絡購買流程,最后返回代購網站購買成功或失敗的信息。該方法適用于代理所有的國外電子商務網站,并且較好地實現了代購網站的核心功能。
HTTP協議是當今互聯網上使用的最重要的協議,絕大部分的Java應用程序都是通過HTTP協議來訪問網絡資源。在原生態的JDK中,已經提供了訪問HTTP協議的基本功能。但是,對于大部分應用程序,JDK庫本身提供的功能,過于簡單和笨拙,遠遠無法滿足開發的需要。HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包,并且它支持HTTP協議最新的版本和建議[1]。
HttpClient提供了許多功能組件,設計的非常靈活易用,同時應用的十分廣泛。它實現了所有HTTP的方法,如常見的GET、POST、PUT、HEAD等。本文中所應用的主要是其所實現的GET和POST方法。使用GET方法,可以抓取國外電子商務網站對應網頁的所有信息,實時并且準確;使用POST方法,可以獲取需要的session信息,還可以發送帶有session信息的POST請求。
使用 HttpClient實現GET和POST方法相類似,主要區別在于GetMethod的實例與PostMethod的實例設置有些不同。具體步驟如下:首先,創建一個HttpClient的實例,創建并設置GetMethod或者PostMethod的實例。調用創建好的HttpClient實例的 execute 方法來執行創建好的Method實例。讀取response。無論執行方法是否成功,釋放連接。對得到后的內容進行處理。如圖1所示:

圖1 HttpClient使用步驟
實現代購同步功能的根本前提,是需要在每次購買商品前,獲取商品在國外電子商務網站上最新的數據。所以,我們在每次訪問商品時,利用HttpClient的GET方法,抓取商品所在網站的最新數據,展示在代購網站頁面,盡可能地保證商品信息的實時性。然后,再使用HttpClient的POST方法模擬登錄到國外電子商務網站,獲取合法的session,執行購買行為的同步操作。
在代購網站參與網絡購物過程中,從登錄網站首頁,以及點擊進入商品的詳情展示界面,界面顯示的所有商品信息,都是利用數據同步技術將數據同步更新到代購網站的頁面。該技術保證了商品信息的實時性,同時無需在代購網站數據庫存儲所有的商品信息,也無需定期同步更新本地的數據庫,極大地減小了數據庫的開銷。
由于代購網站每次請求獲取的頁面信息來自指定的URL,同時獲取數據的網頁布局相對固定,DOM元素不會頻繁變更,需要獲取的關鍵字信息比較明確。所以代購網站可以使用爬蟲技術,高效地抓取指定頁面中的既定抓取目標。
在HttpClient提供的眾多功能組件中,我們使用其實現的HTTP功能中的GET方法。使用該方法,我們就可以獲取國外電子商務網站對應網頁的所有信息。具體實現步驟如下:首先要創建一個HttpClient實例,然后選擇使用GET方法,傳入待抓取數據的URL地址。再執行GET方法,即可獲取目標頁面的所有數據并釋放鏈接。最后對獲取的數據做有效數據的提取即可。具體實現步驟如圖2所示:

圖2 HttpClient抓取數據步驟
通過以上步驟,便可以獲取所查看商品的最新數據。代購網站將這部分信息展示給用戶的同時,也將最新數據存儲到本地數據庫中,以支持接下來的商品購買行為。
代購同步技術主要是應用在通過代購網站購買國外電子商務網站的商品過程中。在代購網站購買商品的操作同在普通的電子商務網站購物相類似,其過程如圖3所示:

圖3 代購網站購物步驟
首先,使用個人申請的代購網站的賬號,登錄到代購網站。從網站首頁點擊進入到不同商品的詳細信息界面,瀏覽心儀商品的最新信息。然后選擇購買商品,代購網站顯示購買完成的信息。此時,通過代購網站購買國外電子商務網站商品的操作結束。
HTTP協議的主要特點是它是無狀態的,也就是連接的有效期只限于當前請求,請求內容結束后連接就關閉了。因此在所有的電子商務網站服務授權問題上,并不能通過一個普通的URL訪問使用網站所提供的功能,而必須要經過注冊、登錄后才可使用提供的服務。之后的每次訪問請求,均需要驗證會話的權限。這時就需要通過session來解決此類問題。目前主流的網站技術均是通過session來處理會話信息。為了使本地網站能使用其它網站所提供的功能,就要求程序登錄后使用具體功能,這個過程就需要自行處理session。
代購網站實現代購同步功能的第一個難題,就是所有的電子網站的購物功能都只是對注冊用戶可用的,這種情況下就必須要求使用正確的用戶名和口令登錄成功后,才可參與網絡購買。因為HTTP協議是無狀態的,在這種情況下為了保存用戶的登錄信息,必須使用到session機制。例如Java Web服務器,當瀏覽器請求一個JSP的頁面時,Web服務器會返回一個名為jsessionid參數,值是一個長字符串,這個字符串值也就是當前訪問該網站的會話標識,通常使用session存儲。之后瀏覽器每次訪問該網站的其他頁面時,都會帶上jsessionid這樣的session信息。應用服務器再根據讀取到的session信息,來獲取對應的權限信息。
對于需要用戶登錄的網站,在用戶登錄成功后,網站會將用戶資料保存在服務器的會話中。這樣,當用戶再訪問其他頁面時,服務器會根據瀏覽器發送的session信息,讀取
Research and Implementation of Agent Purchase Synchronous Technology Based on HttpClient
Wang Xiaolin
(Rizhao Polytechnic, Rizhao 276800, China)
Internet Shopping agency as a form of e-commerce has developed very mature. People are no longer limited to participating in the online shopping in their own country, but are involving in the purchase of more and more global well-known e-commerce site activities. Due to various reasons, it is difficult to achieve a good result in cross-border online shopping, so the purchasing website that provides purchasing agent services emerged. This paper proposed a synchronization technology for agent purchasing which is purchasing a new model website. First, using HttpClient to crawl pages display data from foreign e-commerce sites to ensure real-time information, reducing the overhead of the system database. Then it uses HttpClient to synchronize every user purchase request to the foreign e-commerce sites which direct the completion of the real purchasing behavior. This model is more automatic, general and stably.
Electronic Commerce; HttpClient; Internet Shopping Agency; Agent Purchase; Synchronous Technology

TP311
A
1007-757X(2014)07-0046-03
王曉琳(1971-),女,日照職業技術學院,講師,碩士,研究方向:計算機應用技術,計算機網絡及應用,日照 276800