2
我正在使用Flex,並且我發現當我將Uri(://jsonplaceholder.typicode.com/posts/1)發送給AMFChannel時,其內容'HTTPS'協議計算出calculateEndpoint() Channel類的方法將協議從「HTTPS」更改爲「HTTP」。更改AMFChannel中端點的協議,如何解決?
我還做了一個簡單的項目來演示端點如何通過AMFChannel進行更改。
<?xml version="1.0"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script><![CDATA[
import mx.controls.Alert;
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
import mx.rpc.AbstractOperation;
import mx.rpc.remoting.mxml.RemoteObject;
private function button1_clickHandler(event:MouseEvent):void
{
var amfChannelWeb:AMFChannel = new AMFChannel("amfChannel", txtInput.text);
var remoteObj:RemoteObject = new RemoteObject();
remoteObj.showBusyCursor = true;
remoteObj.requestTimeout = 0;
var channelSet = new ChannelSet();
channelSet.channels = [amfChannelWeb];
remoteObj.destination = "amfphp";
remoteObj.channelSet = channelSet;
var op:AbstractOperation = remoteObj.getOperation("testAmfData");
op.send();
op.addEventListener("result", resultHandler);
op.addEventListener("fault", resultFaultHandler);
lblEndpoint.text = amfChannelWeb.endpoint;
}
private function resultHandler(e:Event):void
{
lblChannelError.text = e.toString();
}
private function resultFaultHandler(e:Event):void
{
lblChannelError.text = e.toString();
}
]]></fx:Script>
<s:VGroup width="100%">
<s:TextInput width="80%" id="txtInput" text="https://jsonplaceholder.typicode.com/posts/1"/>
<s:Button click="button1_clickHandler(event)" label="Click"/>
<s:Label id="lblEndpoint"/>
<s:Label id="lblChannelError"/>
</s:VGroup>
是這個問題還是我做的不對的財產以後?
感謝您的回答@Sumit,但我已經使用的AMFChannel在一個項目中,如果我改變比影響很多在我的項目的通道。 AMFChannel中的任何解決方案? –
那麼,如果您使用BlazeDS連接到java服務,則可以在services-config.xml中創建一個安全通道並將該通道分配給目標。此鏈接將幫助您http://www.adobe.com/devnet/flex/articles/flex_java_architecture.html – Sumit
再次感謝您的回答。我在我的項目中使用SecureAMFChannel,並進行了一些需要的更改。此外它的工作正常。現在我的項目從HTTP轉移到HTTPS。 非常感謝你的回答。 –