| <html> |
| <head> |
| <link type="text/css" rel="stylesheet" media="all" href="screen.css" /> |
| <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> |
| <script type="text/javascript" src="forge/util.js"></script> |
| <script type="text/javascript" src="forge/socket.js"></script> |
| <script type="text/javascript" src="forge/http.js"></script> |
| <script type="text/javascript" src="forge/log.js"></script> |
| |
| <script type="text/javascript"> |
| //<![CDATA[ |
| // logging category |
| var cat = 'forge.tests.http'; |
| |
| window.forge.socketPool = |
| { |
| ready: function() |
| { |
| forge.log.debug(cat, 'SocketPool ready.'); |
| } |
| }; |
| |
| swfobject.embedSWF( |
| 'forge/SocketPool.swf', 'socketPool', '0', '0', '9.0.0', |
| false, {}, {allowscriptaccess: 'always'}, {}); |
| |
| // local aliases |
| var net = window.forge.net; |
| var http = window.forge.http; |
| var util = window.forge.util; |
| |
| var client; |
| |
| function client_init() |
| { |
| try |
| { |
| var sp = net.createSocketPool({ |
| flashId: 'socketPool', |
| policyPort: 19945, |
| msie: false |
| }); |
| client = http.createClient({ |
| //url: 'http://' + window.location.host, |
| socketPool: sp, |
| connections: 10 |
| }); |
| |
| document.getElementById('feedback').innerHTML = |
| 'HTTP client created'; |
| } |
| catch(ex) |
| { |
| forge.log.error(cat, ex); |
| } |
| return false; |
| } |
| |
| function client_cleanup() |
| { |
| var sp = client.socketPool; |
| client.destroy(); |
| sp.destroy(); |
| document.getElementById('feedback').innerHTML = |
| 'HTTP client cleaned up'; |
| return false; |
| } |
| |
| function client_send() |
| { |
| var request = http.createRequest({ |
| method: 'GET', |
| path: '/' |
| //body: 'echo=foo', |
| //headers: [{'Content-Type': 'application/x-www-form-urlencoded'}] |
| }); |
| |
| client.send({ |
| request: request, |
| connected: function(e) |
| { |
| forge.log.debug(cat, 'connected', e); |
| }, |
| headerReady: function(e) |
| { |
| forge.log.debug(cat, 'header ready', e); |
| }, |
| bodyReady: function(e) |
| { |
| forge.log.debug(cat, 'body ready', e); |
| }, |
| error: function(e) |
| { |
| forge.log.error(cat, 'error', e); |
| } |
| }); |
| document.getElementById('feedback').innerHTML = |
| 'HTTP request sent'; |
| return false; |
| } |
| |
| function client_send_10() |
| { |
| for(var i = 0; i < 10; ++i) |
| { |
| client_send(); |
| } |
| return false; |
| } |
| |
| function client_stress() |
| { |
| for(var i = 0; i < 10; ++i) |
| { |
| setTimeout(function() |
| { |
| for(var i = 0; i < 10; ++i) |
| { |
| client_send(); |
| } |
| }, 0); |
| } |
| return false; |
| } |
| |
| function client_cookies() |
| { |
| var cookie = |
| { |
| name: 'test-cookie', |
| value: 'test-value', |
| maxAge: -1, |
| secure: false, |
| path: '/' |
| }; |
| client.setCookie(cookie); |
| forge.log.debug(cat, 'cookie', client.getCookie('test-cookie')); |
| } |
| |
| function client_clear_cookies() |
| { |
| client.clearCookies(); |
| } |
| |
| function request_add_cookies() |
| { |
| var cookie1 = |
| { |
| name: 'test-cookie1', |
| value: 'test-value1', |
| maxAge: -1, |
| secure: false, |
| path: '/' |
| }; |
| var cookie2 = |
| { |
| name: 'test-cookie2', |
| value: 'test-value2', |
| maxAge: -1, |
| secure: false, |
| path: '/' |
| }; |
| var request = http.createRequest({ |
| method: 'GET', |
| path: '/' |
| }); |
| request.addCookie(cookie1); |
| request.addCookie(cookie2); |
| forge.log.debug(cat, 'request', request.toString()); |
| } |
| |
| function response_get_cookies() |
| { |
| var response = http.createResponse(); |
| response.appendField('Set-Cookie', |
| 'test-cookie1=test-value1; max-age=0; path=/; secure'); |
| response.appendField('Set-Cookie', |
| 'test-cookie2=test-value2; ' + |
| 'expires=Thu, 21-Aug-2008 23:47:25 GMT; path=/'); |
| var cookies = response.getCookies(); |
| forge.log.debug(cat, 'cookies', cookies); |
| } |
| |
| //]]> |
| </script> |
| </head> |
| <body> |
| <div class="nav"><a href="index.html">Forge Tests</a> / HTTP</div> |
| |
| <div class="header"> |
| <h1>HTTP Test</h1> |
| </div> |
| |
| <div class="content"> |
| |
| <div id="socketPool"> |
| <p>Could not load the flash SocketPool.</p> |
| </div> |
| |
| <fieldset class="section"> |
| <ul> |
| <li>Use the controls below to test the HTTP client.</li> |
| <li>You currently need a JavaScript console to view the output.</li> |
| </ul> |
| </fieldset> |
| |
| <fieldset class="section"> |
| <legend>Controls</legend> |
| <button id="init" onclick="javascript:return client_init();">init</button> |
| <button id="cleanup" onclick="javascript:return client_cleanup();">cleanup</button> |
| <button id="send" onclick="javascript:return client_send();">send</button> |
| <button id="send10" onclick="javascript:return client_send_10();">send 10</button> |
| <button id="stress" onclick="javascript:return client_stress();">stress</button> |
| <button id="client_cookies" onclick="javascript:return client_cookies();">cookies</button> |
| <button id="clear_cookies" onclick="javascript:return client_clear_cookies();">clear cookies</button> |
| <button id="add_cookies" onclick="javascript:return request_add_cookies();">add cookies</button> |
| <button id="get_cookies" onclick="javascript:return response_get_cookies();">get cookies</button> |
| </fieldset> |
| |
| <fieldset class="section"> |
| <legend>Feedback</legend> |
| <p>Feedback from the flash SocketPool:</p> |
| <div id="feedback"> |
| None |
| </div> |
| |
| </div> |
| </body> |
| </html> |