Appel d 'une légende HTTP
Après avoir configuré une légende HTTP, vous l ' appeelez en inclant l 'SYS.HTTP_CALLOUT(<名称>)
表达式dans une règle de stratégie avancée。丹赛特的表情,<名称>
il s 'agit du nom de la légende HTTP que vous souhaitez appeller。
Vous pouvez utiliser des opérateurs d 'expression de stratégie avancée avec l 'expression de légende pour traiter la réponse, puis effective une action appropriée。Le type de reour de la réponse de l 'agent de légende HTTP détermine Le jeu d 'opérateurs que vous pouvez utiliser sur la réponse。Si la party de la réponse que vous souhaitez analyser est du texte, vous pouvez utiliser un opérateur de texte pour analyser la réponse。例如,vous pouvez utiliser l '
SYS.HTTP_CALLOUT (mycallout)。contains("正确的IP地址")
表达方式précédente dan une stratégie de répondeur,配置une行动de répondeur appropriée。
De même, si la party De la réponse que vous souhaitez évaluer est un nombre, vous pouvez utiliser un opérateur numérique tel que GT (int)。la réponse大陆的价值booléenne,你的力量opérateur booléen。
备注:Une légende HTTP peut s 'appeler elle-même de manière récursive。La récursion des légendes HTTP peut être évitée en combined l 'expression de légende HTTP avec une expression de stratégie avancée qui empêche La récursion。倒加d '信息sur la façon d ' éviter la récursion de légende HTTP, reportez-vous à la节Éviter la récursion des légendes HTTP.
Vous pouvez également mettre en cascade les légendes HTTP en configuration des stratégies qui appellent chacune légende après avoir évalué les légendes générées précédemment。在这个场景中,然后一个策略下叫做一个legende,当l 'appliance Citrix ADC分析d 'envoyer la legende盟serveur de la legende的传说,联合国第二个合奏de策略可以安勤科技la legende et des appels appel supplementaires,, peuvent为了旅游也可能evalues联合国第三合奏de策略,等等。Une tell le implémentation est décrite dans l ' example suivant。
Tout d 'abord, vous pouvez configurer une légende HTTP appelée MyCallout1, puis configurer une stratégie de répondeur, Pol1, pour appeler MyCallout1。Vous pouvez ensuite配置une deuxième légende HTTP, MyCallout2, et une stratégie de répondeur, Pol2。Vous configurez Pol2 pour évaluer MyCallout1 et invoquer MyCallout2。你是双人间stratégies de répondeur全球。
倒éviter la récursion des légendes HTTP, MyCallout1 est configuré avec un en-tête HTTP personnalisé唯一appelé«请求1»。«Pol1 est configuré pour éviter la récursion des légendes HTTP à l 'aide de l 'expression de stratégie avancée,
HTTP.REQ.HEADER(“Request1”)。EQ (Callout请求”)自身之外。<!——NeedCopy >
Pol2利用la même表达式stratégie avancée, mais排除l 'opérateur . not afin que la stratégie évalue MyCallout1 lorsque l 'appliance Citrix ADC l 'analyse。Notez que MyCallout2 identifie son propre en-tête unique appelé«Request2»,et Pol2 include une expression de stratégie avancée pour empêcher MyCallout2 de s 'appeler récursivement。
为例:
> add policy httpCallout myCallout1 Done > set policy httpCallout myCallout1 -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr ""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request1 ("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)"完成>添加响应器策略Pol1 "HTTP.REQ.HEADER("Request1")。EQ (Callout请求”)。不是&& SYS.HTTP_CALLOUT(myCallout1)。包含(“IP匹配”)”RESET Done > bind responder global Pol1 100 END -type OVERRIDE Done > add policy httpCallout myCallout2 Done > set policy httpCallout myCallout2 -IPAddress 10.102.3.96 -port 80 -returnType TEXT -hostExpr ""10.102.3.96"" -urlStemExpr ""/cgi-bin/check_clnt_location_from_database.pl"" -headers Request2 ("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(200)"完成>添加响应器策略Pol2 "HTTP.REQ.HEADER("Request2")。EQ (Callout请求”)。不是&& HTTP.REQ.HEADER("Request1")。EQ(“Callout请求”)&& SYS.HTTP_CALLOUT(myCallout2)。包含(“亚太地区”)”RESET Done > bind responder global Pol2 110 END -type OVERRIDE Done