You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apigee代理HTTPBasicAuth请求超时问题排查求助

Apigee代理转发HTTP Basic Auth请求网关超时问题排查与解决

收到的网关超时错误信息:

{"fault":{"faultstring":"Gateway Timeout","detail":{"errorcode":"messaging.adaptors.http.flow.GatewayTimeout"}}}

原始正常请求(不经过Apigee)

import requests
from requests.auth import HTTPBasicAuth
url = "https://myapi.com/path"
auth =  HTTPBasicAuth("username", "password")
response = requests.get(url, auth=auth, verify=False)

经过Apigee代理的请求代码

import requests
from requests.auth import HTTPBasicAuth
url = "https://apigee-proxy.com/basepath/path"
headers = {
    "apikey" : "XXXXXX",
    "username": "username",
    "password": "password"

}
response = requests.get(url, headers=headers, verify=False)

Apigee代理配置详情

ProxyEndpoint 配置

<ProxyEndpoint name="default">
    <Description/>
    <FaultRules/>
    <PreFlow name="PreFlow">
        <Request/>
           <Step>
              <Name>Extract-Variables-1</Name>
           </Step>
           <Step>
              <Name>Basic-Authentication-1</Name>
           </Step>
        <Response/>
    </PreFlow>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <Flows>
    </Flows>
    <HTTPProxyConnection>
        <BasePath>/basepath</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

Extract-Variables-1 配置

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <Source>request</Source>
    <Header name="username">
        <Pattern ignoreCase="true">{username}</Pattern>
    </Header>
    <Header name="password">
        <Pattern ignoreCase="true">{password}</Pattern>
    </Header>
    <VariablePrefix>auth</VariablePrefix>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</ExtractVariables>

Basic-Authentication-1 策略配置

<BasicAuthentication async="false" continueOnError="true" enabled="true" name="Basic-Authentication-1">
    <DisplayName>Basic Authentication-1</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="auth.username"/>
    <Password ref="auth.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

TargetEndpoint 配置

<TargetEndpoint name="default">
    <Description/>
    <FaultRules/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <Flows/>
    <HTTPTargetConnection>
        <LoadBalancer>
            <Server name="my_target"/>
        </LoadBalancer>
        <Path>/</Path>
    </HTTPTargetConnection>
</TargetEndpoint>

目标服务器环境变量my_target值为myapi.com,端口443

排查结论

  • 已验证Extract-Variables-1策略可正确提取请求头中的用户名和密码,Basic-Authentication-1策略也成功生成了Authentication请求头,Basic Auth相关配置无问题。
  • 最终确认网关超时问题由组织内部防火墙导致,与Apigee代理的Basic Auth配置无关。

内容的提问来源于stack exchange,提问作者cozzymotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:30:51