从 Cobol 6.3 以 JSON 格式调用 REST API HTTPS 端点

问题描述 投票:0回答:2

我正在尝试执行下面的 EXEC CICS WEB CONVERSE 命令,并在执行该命令时从 Cobol 以 JSON 格式与 https 端点进行通信,但出现套接字错误。响应码分别为17和42。

EXEC CICS WEB CONVERSE                   
          PATH(PATH-NAME)                
          PATHLENGTH(PATH-LENGTH)        
          GET                            
          QUERYSTRING(DATA-BODY)         
          QUERYSTRLEN(DATA-BODY-LENGTH)  
          TOCONTAINER('DFHJSON-JSON')    
          TOCHANNEL(CHANNEL-NAME)        
          MEDIATYPE(CONTENT-TYPE)        
          STATUSCODE(HTTPS-RESP)         
          STATUSTEXT(HTTPS-STAT)         
          STATUSLEN(HTTPS-STAT-LEN)      
          SESSTOKEN(TOKEN)               
          CHARACTERSET('UTF-8')          
          RESP(CICS-RESP)                
          RESP2(CICS-RESP2)              
          END-EXEC                       

您能帮我解决这个问题吗?

如果您知道任何参考资料,也请告诉我。

我期望执行此命令并从 api https 端点接收响应

json cobol mainframe cics
2个回答
3
投票

这些错误代码 - RESP=17、RESP2=42 - 指示套接字错误。您没有显示 WEB OPEN 命令,但我从您的字段名称猜测您正在尝试使用 HTTPS 连接到服务器。您是否收到对 WEB OPEN 命令的正常响应?我要检查的第一件事是查看您的 CICS 区域是否可以支持 HTTPS。该区域必须已使用包含至少一个证书的密钥环进行初始化。如果在初始化时未指定密钥环,则您的应用程序只能使用 HTTP 而不能使用 HTTPS。

红皮书 SG24-8161 第 11 章中有一个示例 CICS WEB 客户端程序,可以从 https://www.redbooks.ibm.com/abstracts/sg248161.html 下载。您可能会发现它很有帮助。


0
投票

我也遇到同样的错误。我的网络打开 http 请求成功。但 webconverse 失败了。以下是详细信息。我不确定套接字 IO 错误。有什么建议吗? 状态文本:
状态代码:0000
进入:

WEB-CONVERSE 失败
WEB-CONVERSE失败00000017RESP200000042

在邮递员中尝试时,JSON 请求工作正常(resp code = 200)

© www.soinside.com 2019 - 2024. All rights reserved.