<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>SnippetRepoBrowser</title>
    <link>http://snippet.gnstudio.com/snippetrepobrowser/index</link>    
    <description>RSS Feed of SnippetRepoBrowser (Global RSS)</description>    
    <language>en-us</language>
    <pubDate>Thu, 09 Feb 2012 21:21:27 +0100</pubDate>
    <docs>SnippetRepoBrowser/index</docs>
    <generator>SnippetRepoBrowser Feed Generator</generator>
    <item>
      <title><![CDATA[HTTPService and basic authentication]]></title>
      <link>http://snippet.gnstudio.com/viewtopic/37</link>
      <description><![CDATA[suppose your HTTPService goes to a server that need basic authentication, you&#39;ll be prompted EACH time with a pop-up, fill with user and password. This can be very annoying specially in long dev/debug session.<br />setCredentials and setRemoteCredentials for different reasons, don&#39;t work with &quot;simple&quot; http auth.<br />Solution:<br />- add custom header and send it before any further request<br />how to implement:<br />- define your HTTPService as you desidred (mxml, as)<br />- add initialization code as shown below:<br />]]><![CDATA[<div class="divcode"><pre lang="actionscript">&lt;?xml version=&quot;1.0&quot;?&gt;<br />&lt;!--<br />/**<br /> * @author jaco<br /> *<br /> * created on 17/10/2009 16.51.03<br /> */<br />--&gt;<br />&lt;mx:Application<br />	xmlns:mx=&quot;<a href="http://www.adobe.com/2006/mxml&quot;" target="_blank"><a href="http://www.adobe.com/2006/mxml&quot;" target="_blank">http://www.adobe.com/2006/mxml&quot;</a></a><br />	creationComplete=&quot;init_app()&quot;&gt;<br /><br />&lt;mx:Script&gt;<br />&lt;![CDATA[<br /><br />	import mx.utils.Base64Encoder;<br />	import mx.rpc.events.FaultEvent;<br />	import mx.rpc.events.ResultEvent;<br /><br /><br />	[Bindable]<br />	private var SERVER_APP_URL:String = &quot;<a href="http://your.auth_server.com/your_app&quot;;" target="_blank"><a href="http://your.auth_server.com/your_app&quot;;" target="_blank">http://your.auth_server.com/your_app&quot;;</a></a> // accommodate with your real url<br /><br />	/**<br />	 * application initialization<br />	 */<br />	internal function init_app():void {<br /><br />		var b64:Base64Encoder = new Base64Encoder();<br />		b64.insertNewLines = false;<br />		b64.encode(&quot;youruser:yourpwd&quot;); // credentials must be base64 encoded, change to fit your needs<br /><br />		abService.headers = {Authorization:&quot;Basic &quot; +b64.toString()};<br />		abService.send();<br /><br />		// ...<br />	}<br /><br />	/**<br />	 * event triggered on service error<br />	 * @param error event<br />	 */<br />	internal function onServiceFault(evt:FaultEvent):void {<br />		/* TODO */<br />		trace(evt.type, evt.fault);<br />		// your code here<br />	}<br /><br />	/**<br />	 * event triggered on service result<br />	 * @param result event<br />	 */<br />	internal function onServiceResult(evt:ResultEvent):void {<br />		/* TODO */<br />		// your code here<br />	}<br />]]&gt;<br />&lt;/mx:Script&gt;<br /><br />	&lt;mx:HTTPService id=&quot;abService&quot;<br />            		url=&quot;{SERVER_APP_URL}&quot;<br />            		method=&quot;POST&quot;<br />            		resultFormat=&quot;e4x&quot;<br />            		fault=&quot;onServiceFault(event)&quot;<br />            		result=&quot;onServiceResult(event)&quot; /&gt;<br /><br />    &lt;mx:Panel title=&quot;&quot; height=&quot;100%&quot; width=&quot;100%&quot;<br />        paddingTop=&quot;5&quot; paddingLeft=&quot;5&quot; paddingRight=&quot;5&quot; paddingBottom=&quot;5&quot;&gt;<br /><br />	&lt;/mx:Panel&gt;<br />&lt;/mx:Application&gt;<br /></pre></div><br /><br />]]></description>
      <author>jaco</author>
      <pubDate>Sat, 17 Oct 2009 16:03:45 +0200</pubDate>
      <category>Flex 3.x</category>
      <guid>http://snippet.gnstudio.com/viewtopic/37</guid>
   </item>
  </channel>
</rss>
