2010-01-01 52 views
0

我是一個柔性的小白和我有一個關於HTTPService類的幾個疑點,HttpService的問題

  1. 我可以用它來從 文件駐留在自己的服務器上獲取數據 或者我可以使用它來下載任何網站類似於google或 的外部網站(不包括 api)?

  2. 根據是否爲 桌面應用程序或Web應用程序,httpservice的行爲不同 ?

簡而言之,它表現得像一個httpclient(像libcurl和mechanize)還是它有限制(如xmlhttprequest)?

回答

3

Flex的HTTPService庫是Flash Player中底層HTTP聯網API之上的一個便利API。因此,您只能將其用於Flash Player支持的事物。

  1. 瀏覽器對網絡請求具有相同域/同源策略。因此,從foo.com加載的應用程序只能從foo.com獲取數據。但是,Flash Player提供了一種使用跨域策略文件來解決此問題的機制。然而,它們是危險的,更好的解決方案是使用BlazeDS或Apache等代理,以免違反同源策略。

  2. Adob​​e AIR和Flash Player中的HTTP網絡API之間存在一些細微差異。主要區別之一是Adobe AIR應用程序不具有相同來源策略。

+0

感謝您的答案,正是我需要知道的 – foobar 2010-01-02 05:42:48

-1

它更像是XmlHttpRequest。實際上它更加有限。

Flex的HTTP支持非常糟糕。在我的公司,我們將其歸類爲「殘廢」客戶。

+0

你能提供更多的細節嗎? Flash Player的HTTP限制主要是由於瀏覽器限制(如同域)或NSPAPI的限制(如沒有PUT,DELETE等)。 – 2010-01-01 18:13:26

+0

- 它不能發送請求頭'Authorization',所以它不能使用HTTP基本認證 - 如果響應的狀態代碼是200 - 甚至201,202或204之外的任何內容 - 響應被處理作爲錯誤,請求被認爲是失敗的,並且很難或不可能訪問響應頭或響應主體。 - 通常很難或不可能訪問響應頭 ......這就是我的頭頂;還有更多。 – 2010-01-02 22:47:19

0
  1. 是的,你可以使用HttpService從你自己的服務器獲取數據。

  2. 它就像XMLHttpRequest一樣異步發送請求。 對於syncronous行爲或複製HttpClient我認爲你可以使用ActionScript的NetConnection類。

+0

Flash中沒有同步IO API。 – 2010-01-01 18:11:17

+0

感謝您糾正我的錯誤。 – Rajat 2010-01-01 19:15:06