Flex :: Block Http Requests To Some Web-pages From Adobe Air
Jan 20, 2010
Is it any way to prevent user to go to specific web-pages using Adobe AIR framework.I want this software to run at startup and not allowing user to surf some web parts.I want to use Adobe AIR beacause of its crossplatform capabilities.
Here is an issue i'm struggling to solve for quit some time now.I have a python + GAE backend with a flex client that communicates via JSON. I'm using flex's HttpService bound to a Responder with result and fault callbacks. When python raises an exception, I don't seem to get it in flex. I did some research and found out that the problem probably lies in the fact that the flash runtime cannot handle http responses with status code other than 200.
Unfortunately, Flash Player doesn't support using request headers with GET requests, as noted here, due to what Adobe terms "browser limitations": Due to browser limitations, custom HTTP request headers are only supported for POST requests, not for GET requests. That means I need to create my own HTTP socket class from scratch and find a way to run a policy server on the machine I'll be querying. Hooray.If I want to make a simple GET HTTP request with HTTP-Basic auth headers, what do I need? I'd need something like
socket.write("HTTP GET REQUEST PAYLOAD HERE"); socket.flush();
What do I put in the write method to compose a GET request?
there is an issue i am curious about very much. when i develop a flash application or web site, http posts and requests, links etc.. everything can be seen with add ons. what do you suggest for this issue? i cannot find any good solution, what solutions to be used generally?
First off, I'm trying to fix something that I didn't build to begin with and the guy who's project it was assures me it was working fine when he left, although a version I haven't touched since he left seems to have the same issues. I'm also a bit new to programming in general so let me know if I've left out important information in my first post and I will try to add more info.
I have a flash application hosted on-line that acts as a client for a server application written in Delphi. Most of the communication is done using sockets, which work fine. Uploading data files and downloading results files is done using HTTP requests, which work fine as long as the user is making use of an instance of the server on another computer. However, if the user has the server application installed on their own computer and attempts to use it specifying localhost as the url, the socket communication still works, but the HTTP requests don't.
All the socket based communication works fine and, when it is not on the localhost, all the HTTP requests work fine as well, which is why this is so mystifying to me. I've tried changing the flash cross-domain policy file that the server dispatches to be completely permissive, all ports, all domains, all http-request-headers, and still no luck. The Flash app will sit waiting for localhost indefinitely most of the time until I close the server application, and then give this error message:
I am finding that if I load Flash from a HTTPS page [URL] and try to make a request within ActionScript 3 to [URL] the request does not go through. Same goes for the opposite (accessing https from a http-loaded flash script).
The request is failing, the requested data (passed from a PHP script) is not loading.
Now at first I assumed the trouble was with cross-domain policy files, but I have fixed that issue (I think).
Is there any security policy in Flash (CS5 btw) on HTTP vs HTTPS requests based on where the script is loaded from?
Im creating an application on Adobe Flex mobile (Blackberry playbook to be exact). Im designing an app that has a search function that makes a simple HTTP request to a server and waits for a response...
When the user clicks on search, how do I create an alert box that says "Searching..." and doesn't disappear until we get an HTTP response?
To put it short, I have an MP3 player on my website coded in flash which plays MP3 files located on my server. What I want to do is give my flash player its own user agent, then in my .htaccess file I will deny the MP3 extension to everything except that user agent. I already have an idea planned using PHP to pass the user agent to flash (to stop reverse engineers getting user agent).
To cut a short story shorter: Is there any way that I can change the user agent flash uses on HTTP requests?
I'm having a problem that I'm not sure is necessarily tied to the Flash, but I don't know what the root of the problem is yet.I have a SWF that connects to a socket using the Socket class. This works fine.I'm also making (jQuery) $.getJSON() requests to load certain page data. This works fine.
However, when the Flash socket is connected the Ajax requests stop being sent. By this I mean that it seems that the HTTP requests being made are stored in a queue while the socket is connected. As soon as I disconnect from the socket the HTTP requests continues to load fine. The HTTP request never times out (as it's not even being sent to the server), but just hangs there waiting...until I close the socket connection.
I've verified both in the jQuery and Adobe docs that both the Ajax (JSONP) requests and the connections using the Socket class are asynchronous, so I'm really confused as to why the socket connection would block the HTTP requests.
How can I get my Adobe Flex applications to seamlessly integrate with HTML pages? That is, I want Flex to: Not take up the entire page (make it any size page element I want). Talk back to the JavaScript on the page (further linking the Flash application with the HTML page).
I run a facebook game that makes http web requests to my server using AS3's URLRequest and URLLoader classes, then takes the json data that the server spits back and and processes it it, etc etc.. Lately I've had users complaining about server requests that never come back. They perform and action and the game just kinda hangs there waiting for a response indefinitely. If it were just every now and again I would blame it on the server just dropping the ball every so often, but some users complain about having this problem consistently at the same exact spot, while others don't get it at all.
The part that bothers me the most is that no matter what I do I cant reproduce the issue that they are having. How can I diagnose this issue without being effected by it? I'm stumped. what might be going on, or anything that I can do to get more information on what might be happening?
A web channel streaming service streams to a certain IP range, it only checks the IP in example.com/cmd.php?id=xxx (channel number) and outputs an rtmpe stream URL, nothing else.How do I trick it to get my local URL instead of the one on their server? I have considered squid proxy, but is there some way to do it with a firefox plugin or greasemonkey script?
Edit:I will try to specify:It's a streaming service from an ISP and cable provider. They stream for free to people on their IP's. On their webtv page, which is called webtv.example.com, there is a flash player. If you are not on an IP from their ISP, you can't stream anything but the test channel.When you try to change channel via. javescript:videoplayer_changechannel(xxx) it makes this HTTP request:
[URL]
If you are on one of their IP's you will get an RTMP URL, like this:
[URL]
This is what the flash player requests, and if it get's this response it load the channel requested. There is no HTML on the php page, just the URL. Note that the rtmp URL is static.If you are not on one of their IP's it will return a random sentence (something stupid, the programmers having fun).I wan't to trick the flash player into getting the right value, even though it's not on one of the ISP's IP's.
Is there any way to use an Adobe AIR application as a local http server? i.e. Adobe AIR application listening to http://localhost:8020 and I'm able to use a browser to access the application? If I can, is it true or pseudo multithreading? Is there any library or code that I can look for?
I wrote an app using adobe flash builder that makes an http data service call to a website.
When I build and launch the app it loads in my browser (the address in the broswer is C:Userspath omyapp.html) and works perfectly. However, when I upload the app to my website or even launch it from outside the project build directory, the HTTP service call fails with the popup
Of course I googled this error and realized it may have something to do with a 'crossdomain.xml' in my web root directory. I tried this and it continued to fail. Below was my crossite domain file
I upload a file using adobe air HTTPService.Send method by passing byte array of file content read using FileReference. When I write the set of bytes from the server side (php) it writes the details of the byte array (buff) to the file instead of contents of the file like "endian=bigEndian&position=0&bytesAvailable=61127&length=61127&objectEncoding=3" . Below I have included the code that how I read the file and send it to server. Is there anyway that i can directly pass the data in the byte array to send method?
File Read
var buff:ByteArray = new ByteArray(); var localFilePath:String = "/Videos/sample.txt"; var uploadedFile:File = new File(localFilePath);
I am developing an AIR application with Flex Builder that requires me to make two HTTPService requests at the same time. They both use different instances of the HTTPService AS3 class. Both services are calling a RESTful API which is currently running on my localhost (XAMPP) and takes a few seconds to respond (much quicker on live server). The problem is that most of the time one of the calls fails, however occasionally they do both work. Its also random as to which call will fail. Both calls use code something like this. This code is basically repeated in two classes.
I have a Flex client that loads data from a server to display a chart. This data may change, so the client regularly repeats the request. Since the result may require some work to retrieve, I'm going to have the server detect if the result has changed, and issue a 304 status if it hasn't.I haven't seen any headers in the Flash Player's requests which would indicate that it's already handling conditional GETs. Also, the HTTPService API doesn't seem to provide anything, either. Does that mean, Flash can't do this, or how can I implement this myself?
With regards to cookies, which aren't supported in Flash, I have heard the suggestion to build my own HTTP client on top of the Socket class. This might solve this issue, too, but frankly, I'm really not keen on doing that.As an alternative, I could just cache the result page and send it again, but so far, the API tries to utilize semantics that are already built into HTTP, and I'd like to keep it that way.
I have a couple of remote object methods that I want to respond to in different ways depending on the context, but I'd rather not set up a bunch of different RemoteObject aliases.Some background: Let's say I have an admin application that displays sales stats in different ways. The remote method looks like:
<mx:RemoteObject id="rpt" destination="AMFServer"> <mx:method name="getSalesStats" fault="getSalesStatsFault(event)" result = "getSalesStatsSuccess(event)" />[code]........
The getSalesStats method takes an employee ID and a sales type as its arguments. You'd call it like:
rpt.getSalesStats(120, "peanuts"); public function getSalesStatsSuccess(e:ResultEvent):void { salesdata:ArrayCollection = e.result.rows as ArrayCollection;[code]......
I'd like to pass something through the remote method to the responding function, like:
I'm using Mate's RemoteObjectInvoker to call methods in my FluorineFX based API. However, all requests seem to be sent to the server sequentiality. That is, if I dispatch a group of messages at the same time, the 2nd one isn't sent until the first returns. Is there anyway to change this behavior?
I am using Flex and Actionscript 3, along with Webservices, rpc and a callResponder. I want to be able to, for example, say:
loadData1(); // Loads webservice data 1 loadData2(); // Loads webservice data 2 loadData3(); // Loads webservice data 3
However, Actionscript 3 works with async events, so for every call you need to wait for the ResultEvent to trigger when it is done. So, I might want to do the next request every time an event is done. However, I am afraid that threading issues might arise, and some events might not happen at all. I don't think I'm doing a good job of explaining, so I will try to show some code:
private var service:Service1; var cp:CallResponder = new CallResponder(); public function Webservice()[code]....
I could ofcourse save the actions in an arraylist, but whose to say that the addToArrayList and the check if other calls are available do not mess eachother up, or just miss each other, thereby halting execution? Is there something like a volatile Arraylist?
Multiple axis creation via MXML works fine: http:[url]...
But when I'm trying dynamically create horizontal and vertical axis then I'm getting extra axes. I believe this is Adobe bug. How I can fix this behavior?
I think I inherited bad code, here's the deal: In my command, I create a local var for the remote object and then call a method on it. In the result, if there's no data, I start a timer. This timer broadcasts an event every 2 seconds that continually calls this command until data is returned. Then the timer is stopped.
What we're seeing is that the method returns data once, and then the next time it doesn't (dupe Flex sessions error). It basically alternates. If we click really fast, sometimes we'll get two to work in a row. At times, the Java dev is seeing these requests returned with different JSESSIONIDs. I believe this is causing the duplicate Flex sessions error. I'm using Cairngorm; here's the execute command.
public function execute(event:CairngormEvent):void { ruleName = (event as FetchReportEvent).ruleName; var ro:RemoteObject = ServiceLocator.getInstance().getRemoteObject("quantRemoteObject"); if (model.guid != null)
Currently in my flex application, I've got all of the app's assets being served from my local server, but I want to be able to serve all of the assets from a CDN (URL...)
the application has quite a bit of components so rather than going to each component and changing the source of the asset, is there a way to capture all of the outgoing request from my flex application and run some logic where I can change the request from [URL]...
As of Flash 10.1, they have added the ability to add bytes into the NetStream object via the appendBytes method URL...The main reason for this addition is that Adobe is finally supporting HTTP streaming of video. This is great, but it seems that you need to use the Adobe Media Streaming Server (URL...) to create the correct video chunks from your existing video to allow for smooth streaming.I have tried to do a hacked version of HTTP streaming in the past where I swap out the NetStream objects (URL...), but there is always a momentary pause between the chunks. With the new appendBytes, I tried to do a quick mock up with the two sections of video from the preceding site, but even then, the skip still remains.Does anyone know how the two consecutive .FLV files needs to be formated in order for the appendBytes method on the NetStream object to create a nice smooth video without a noticeable skip between the segments?
I'm developing an application using flex/AIR and right now it changes all the time due to its beta condition. What could be the best way to block all older versions activity and force the user to update the application?