Repository: flex-asjs
Updated Branches:
  refs/heads/refactor-sprite a47e05f14 -> d79ea5e66


Added URLRequestHeader


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d79ea5e6
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d79ea5e6
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d79ea5e6

Branch: refs/heads/refactor-sprite
Commit: d79ea5e66aa1495cf31941bf255d2a36164bf29c
Parents: a47e05f
Author: yishayw <[email protected]>
Authored: Tue Aug 23 14:18:10 2016 +0300
Committer: yishayw <[email protected]>
Committed: Tue Aug 23 14:18:10 2016 +0300

----------------------------------------------------------------------
 .../flex/org/apache/flex/net/BinaryUploader.as  |  8 +--
 .../flex/org/apache/flex/net/HTTPService.as     |  8 +--
 .../main/flex/org/apache/flex/net/URLRequest.as |  4 +-
 .../org/apache/flex/net/URLRequestHeader.as     | 62 ++++++++++++++++++++
 .../main/flex/org/apache/flex/net/URLStream.as  | 41 +++++++++++--
 5 files changed, 109 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d79ea5e6/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
index 3ca3950..035f753 100644
--- 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
+++ 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
@@ -240,12 +240,12 @@ package org.apache.flex.net
             {
                 if (_responseHeaders && _responseHeaders.length > 0)
                 {
-                    if (_responseHeaders[0] is URLRequestHeader)
+                    if (_responseHeaders[0] is flash.net.URLRequestHeader)
                     {
                         var n:int = _responseHeaders.length;
                         for (var i:int = 0; i < n; i++)
                         {
-                            var old:URLRequestHeader = _responseHeaders[i];
+                            var old:flash.net.URLRequestHeader = 
_responseHeaders[i];
                             var nu:HTTPHeader = new HTTPHeader(old.name, 
old.value);
                             _responseHeaders[i] = nu;
                         }
@@ -515,7 +515,7 @@ package org.apache.flex.net
                 {
                     for each (var header:HTTPHeader in headers)
                     {
-                        var urlHeader:URLRequestHeader = new 
URLRequestHeader(header.name, header.value);
+                        var urlHeader:flash.net.URLRequestHeader = new 
flash.net.URLRequestHeader(header.name, header.value);
                         request.requestHeaders.push(urlHeader);
                         if (header.name == HTTPHeader.CONTENT_TYPE)
                             sawContentType = true;
@@ -523,7 +523,7 @@ package org.apache.flex.net
                 }
                 if (method != HTTPConstants.GET && !sawContentType)
                 {
-                    urlHeader = new URLRequestHeader(HTTPHeader.CONTENT_TYPE, 
contentType);
+                    urlHeader = new 
flash.net.URLRequestHeader(HTTPHeader.CONTENT_TYPE, contentType);
                     request.requestHeaders.push(urlHeader);
                 }
                 if (binaryData)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d79ea5e6/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
index d4a5d0d..b72f6c5 100644
--- 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
+++ 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
@@ -246,12 +246,12 @@ package org.apache.flex.net
             {
                 if (_responseHeaders && _responseHeaders.length > 0)
                 {
-                    if (_responseHeaders[0] is URLRequestHeader)
+                    if (_responseHeaders[0] is flash.net.URLRequestHeader)
                     {
                         var n:int = _responseHeaders.length;
                         for (var i:int = 0; i < n; i++)
                         {
-                            var old:URLRequestHeader = _responseHeaders[i];
+                            var old:flash.net.URLRequestHeader = 
_responseHeaders[i];
                             var nu:HTTPHeader = new HTTPHeader(old.name, 
old.value);
                             _responseHeaders[i] = nu;
                         }
@@ -528,7 +528,7 @@ package org.apache.flex.net
                 {
                     for each (var header:HTTPHeader in headers)
                     {
-                        var urlHeader:URLRequestHeader = new 
URLRequestHeader(header.name, header.value);
+                        var urlHeader:flash.net.URLRequestHeader = new 
flash.net.URLRequestHeader(header.name, header.value);
                         request.requestHeaders.push(urlHeader);
                         if (header.name == HTTPHeader.CONTENT_TYPE)
                             sawContentType = true;
@@ -536,7 +536,7 @@ package org.apache.flex.net
                 }
                 if (method != HTTPConstants.GET && !sawContentType && 
contentData != null)
                 {
-                    urlHeader = new URLRequestHeader(HTTPHeader.CONTENT_TYPE, 
contentType);
+                    urlHeader = new 
flash.net.URLRequestHeader(HTTPHeader.CONTENT_TYPE, contentType);
                     request.requestHeaders.push(urlHeader);
                 }
                 if (contentData)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d79ea5e6/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
index c9db327..389531f 100644
--- 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
+++ 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
@@ -70,6 +70,7 @@ package org.apache.flex.net
                 *  @productversion FlexJS 0.7.0
                 */     
                public var method:String = HTTPConstants.GET;
+               private var _requestHeaders:Array;
         
         public function URLRequest(url:String = null)
         {
@@ -83,11 +84,12 @@ package org.apache.flex.net
         
         public function get requestHeaders():Array
         {
-            return null;
+            return _requestHeaders;
         }
         
         public function set requestHeaders(value:Array) : void
         {
+                       _requestHeaders = value;
         }
         
     }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d79ea5e6/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
new file mode 100644
index 0000000..9680764
--- /dev/null
+++ 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
@@ -0,0 +1,62 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.net
+{
+       /**
+        *  A URLRequestHeader object represents an HTTP request header.
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion FlexJS 0.7.0
+        */
+       
+    public class URLRequestHeader
+    {
+               /**
+                *  An HTTP request header name
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */     
+        
+               public var name:String;
+               
+               /**
+                *  A value of an HTTPRequestHeader
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */     
+        public var value:String;
+               
+               
+        
+        public function URLRequestHeader(name:String, value:String)
+        {
+                       this.name = name;
+                       this.value = value;
+        }
+        
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d79ea5e6/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
index 3949a8c..e100be4 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
@@ -18,6 +18,8 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.net
 {   
+    import flash.utils.clearTimeout;
+    
     import org.apache.flex.events.DetailEvent;
     import org.apache.flex.events.Event;
     import org.apache.flex.events.EventDispatcher;
@@ -99,16 +101,45 @@ package org.apache.flex.net
                 xhr.responseType = "arraybuffer";
                 xhr.addEventListener("readystatechange", 
xhr_onreadystatechange,false);
                 xhr.addEventListener("progress", xhr_progress, false);
-                xhr.setRequestHeader("Content-type", urlRequest.contentType);
-                xhr.send(HTTPUtils.encodeUrlVariables(urlRequest.data));
+                               var contentTypeSet:Boolean = false;
+                               for (var i:int = 0; i < 
urlRequest.requestHeaders.length; i++)
+                               {
+                                       var 
header:org.apache.flex.net.URLRequestHeader = urlRequest.requestHeaders[i];
+                                       if (header.name.toLowerCase() == 
"content-type")
+                                       {
+                                               contentTypeSet = true;
+                                       }
+                                       xhr.setRequestHeader(header.name, 
header.value);
+                               }
+                               if (!contentTypeSet)
+                               {
+                       xhr.setRequestHeader("Content-type", 
urlRequest.contentType);
+                               }
+                               var requestData:Object = urlRequest.data is 
BinaryData ? (urlRequest.data as BinaryData).data : 
HTTPUtils.encodeUrlVariables(urlRequest.data);
+                               xhr.send(requestData);
+//                             
xhr.send(HTTPUtils.encodeUrlVariables(urlRequest.data));
             }
             COMPILE::SWF 
             {
                 flashUrlStream = new flash.net.URLStream();
                 var req:flash.net.URLRequest = new 
flash.net.URLRequest(urlRequest.url);
-                var hdr:URLRequestHeader = new 
URLRequestHeader("Content-type", urlRequest.contentType);
-                req.requestHeaders.push(hdr);
-                req.data = new 
flash.net.URLVariables(HTTPUtils.encodeUrlVariables(urlRequest.data));
+                               var contentSet:Boolean = false;
+                               for each (var 
requestHeader:org.apache.flex.net.URLRequestHeader in urlRequest.requestHeaders)
+                               {
+                                       if(requestHeader.name.toLowerCase() == 
"content-type")
+                                       {
+                                               contentSet = true;
+                                               req.contentType = 
requestHeader.value;
+                                       }
+                                       req.requestHeaders.push(requestHeader)
+                               }
+                               if(!contentSet)
+                               {
+                                       req.requestHeaders.push(new 
flash.net.URLRequestHeader("Content-type", urlRequest.contentType));
+                                       
+                               }
+                req.data = urlRequest.data is BinaryData ? (urlRequest.data as 
BinaryData).data : 
+                                       new 
flash.net.URLVariables(HTTPUtils.encodeUrlVariables(urlRequest.data));
                 req.method = urlRequest.method;
                                
flashUrlStream.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, 
flash_status);
                                
flashUrlStream.addEventListener(HTTPStatusEvent.HTTP_STATUS, flash_status);

Reply via email to