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

使用Progress的CONNECT命令连接失败,Postman可正常连接求排查

Progress CONNECT命令连接AWS API网关失败排查方案

核心问题分析

你当前的代码存在协议匹配、错误捕获缺失等问题,同时Postman自动处理了HTTP请求的细节逻辑,而Progress SOCKET需要手动配置这些内容,这是导致连接失败的主要原因。

具体排查与修正步骤

  • 修正协议与端口匹配
    AWS API网关默认使用HTTPS协议(443端口),你代码中使用的是80端口(HTTP),这是连接失败的常见诱因。Postman会自动识别API网关的HTTPS端点,而Progress需要明确指定HTTPS配置。

  • 修复CONNECT参数格式并捕获错误
    原代码中NO-ERROR会掩盖连接错误,建议先移除该关键字,捕获具体错误信息定位问题:

    DEFINE VARIABLE hSocket123 AS HANDLE NO-UNDO.
    DEFINE VARIABLE cConnectionURL AS CHARACTER NO-UNDO.
    // 改为HTTPS端口并添加SSL参数
    cConnectionURL = "-H ":U + "7d8p6n4c7b.execute-api.us-east-1.amazonaws.com" + " -S ":U + STRING(443) + " -SSL":U.
    CREATE SOCKET hSocket123.
    hSocket123:CONNECT(cConnectionURL).
    // 查看具体错误信息
    IF hSocket123:CONNECTED() = FALSE THEN
        MESSAGE "连接失败,错误码: " + STRING(hSocket123:LAST-ERROR) VIEW-AS ALERT-BOX ERROR.
    

    常见错误码对应问题:10061表示端口不通(协议不匹配),12175表示SSL握手失败(需调整SSL配置)。

  • 配置SSL支持
    若Progress版本较旧,可能需要额外配置SSL参数:

    • 测试阶段可添加"-SSLALLOWUNSAFE"参数跳过证书验证(生产环境禁用):
      cConnectionURL = "-H 7d8p6n4c7b.execute-api.us-east-1.amazonaws.com -S 443 -SSL -SSLALLOWUNSAFE".
      
    • AWS API网关常用TLS 1.2,可指定SSL版本:"-SSLVERSION TLSv1.2"。
  • 构建完整的HTTP上传请求
    连接成功后,需要手动构建与Postman一致的HTTP请求(以multipart/form-data上传xml为例):

    DEFINE VARIABLE cXmlContent AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cBoundary AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cApiPath AS CHARACTER NO-UNDO.
    
    // 替换为你的API网关实际路径
    cApiPath = "/prod/your-endpoint".
    // 读取本地xml文件内容
    INPUT FROM VALUE("informacao.xml").
    IMPORT UNFORMATTED cXmlContent.
    INPUT CLOSE.
    
    // 构造multipart/form-data请求边界
    cBoundary = "----ProgressFormBoundary" + STRING(TIMESTAMP).
    // 发送POST请求
    IF hSocket123:CONNECTED() THEN DO:
        hSocket123:WRITE(
            "POST " + cApiPath + " HTTP/1.1~r~n" +
            "Host: 7d8p6n4c7b.execute-api.us-east-1.amazonaws.com~r~n" +
            "Content-Type: multipart/form-data; boundary=" + cBoundary + "~r~n" +
            "Content-Length: " + STRING(LENGTH(cXmlContent) + LENGTH(cBoundary)*2 + 60) + "~r~n~r~n" +
            "--" + cBoundary + "~r~n" +
            "Content-Disposition: form-data; name=""file""; filename=""informacao.xml""~r~n" +
            "Content-Type: application/xml~r~n~r~n" +
            cXmlContent + "~r~n" +
            "--" + cBoundary + "--~r~n"
        ).
        // 读取API响应
        DEFINE VARIABLE cResponse AS CHARACTER NO-UNDO.
        hSocket123:READ(-1) TO cResponse.
        MESSAGE "API响应: " + cResponse VIEW-AS ALERT-BOX INFORMATION.
    END.
    
  • 检查网络环境一致性
    确认运行Progress的机器与Postman所在机器网络环境一致:

    • 测试能否telnet到7d8p6n4c7b.execute-api.us-east-1.amazonaws.com:443
    • 排查是否有防火墙、代理服务器拦截HTTPS请求
    • 确认Progress机器的DNS能正确解析该域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:27:37