Невозможно отправить XML запрос в мой. net Core API - PullRequest
0 голосов
/ 04 марта 2020

Я не уверен, что не так, но у меня есть запрос XML, который я хочу отправить в виде пост-запроса в мой API. Ниже мой XML запрос.

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><FIXML><Header><RequestHeader><MessageKey><ChannelId>COR</ChannelId><RequestUUID><element>FEBA_1553756445880</element></RequestUUID><ServiceRequestId>executeFinacleScript</ServiceRequestId><ServiceRequestVersion>10.2</ServiceRequestVersion></MessageKey><RequestMessageInfo><BankId><element>04</element></BankId><MessageDateTime>2020-03-04T10:34:51.000</MessageDateTime><TimeZone>GMT+05:00</TimeZone></RequestMessageInfo><Security><Token><PasswordToken><UserId>11111.0</UserId></PasswordToken></Token></Security></RequestHeader></Header><Body><executeFinacleScriptRequest><ExecuteFinacleScriptInputVO><requestId><element>validateAcct.scr</element></requestId></ExecuteFinacleScriptInputVO><executeFinacleScript_CustomData><ACCT_NUM><element>01122507578</element></ACCT_NUM><NIC><element>G2105493001653</element></NIC><PHONE_NUM><element>59887834</element></PHONE_NUM></executeFinacleScript_CustomData></executeFinacleScriptRequest></Body></FIXML></soapenv:Body></soapenv:Envelope>

Используя этот запрос, я создал объект Complex XML в своем классе контроллера API, используя специальную вставку как класс XML. Ниже приведен код моего контроллера

    [Produces("application/xml")]
    [HttpPost("RegisterCustomer", Name = "RegisterCustomer")]
    public IActionResult RegisterCustomer(Envelope MyReq)
    {
        string StatusBit = string.Empty;
        var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);
        var date = DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss.000");
        DateTime MessageDateTimed = Convert.ToDateTime(date);
        string requestId = MyReq.Body.FIXML.Body.executeFinacleScriptRequest.ExecuteFinacleScriptInputVO.requestId.element.ToString();
        string ACCT_NUM = MyReq.Body.FIXML.Body.executeFinacleScriptRequest.executeFinacleScript_CustomData.ACCT_NUM.element.ToString();
        string PHONE_NUM = MyReq.Body.FIXML.Body.executeFinacleScriptRequest.executeFinacleScript_CustomData.PHONE_NUM.element.ToString();
        string NIC = MyReq.Body.FIXML.Body.executeFinacleScriptRequest.executeFinacleScript_CustomData.NIC.element.ToString();
        if((ACCT_NUM== "01122507576" || ACCT_NUM == "1122507576") && NIC == "G2105493001653")
        {
            StatusBit = "SUCCESS";
        }
        else
        {
            StatusBit = "FAILURE";
        }
        string OutPutXML = "<FIXML><Header><ResponseHeader><RequestMessageKey><RequestUUID>FEBA_1553756445880</RequestUUID> <ServiceRequestId>executeFinacleScript</ServiceRequestId><ServiceRequestVersion>10.2</ServiceRequestVersion><ChannelId>COR</ChannelId></RequestMessageKey><ResponseMessageInfo> <BankId>04</BankId><TimeZone>"+Convert.ToString("GMT + ") + offset +"</TimeZone><MessageDateTime>"+ date + "</MessageDateTime></ResponseMessageInfo><UBUSTransaction><Id /><Status /></UBUSTransaction><HostTransaction><Id /><Status>SUCCESS</Status></HostTransaction><HostParentTransaction><Id /><Status /></HostParentTransaction><CustomInfo /></ResponseHeader></Header><Body><executeFinacleScriptResponse><ExecuteFinacleScriptOutputVO /><executeFinacleScript_CustomData><STATUS>"+ StatusBit + "</STATUS><ERROR><FIBUSINESSEXCEPTION><ERRORDETAIL><ERRORCODE>ERR0008</ERRORCODE><ERRORDESC>Invalid NIC Passed</ERRORDESC><ERRORTYPE>BE</ERRORTYPE></ERRORDETAIL></FIBUSINESSEXCEPTION></ERROR></executeFinacleScript_CustomData></executeFinacleScriptResponse></Body><StaticData><requestId>"+requestId+"</requestId><ACCT_NUM>"+ACCT_NUM+"</ACCT_NUM><PHONE_NUM>"+PHONE_NUM+" </PHONE_NUM><NIC>"+NIC+"</NIC></StaticData></FIXML>";
        return Content(OutPutXML, "application / xml", Encoding.UTF8);
    }

Но когда я запрашиваю конечную точку API в рабочем процессе WSO2. Я получаю ниже Ошибка в консоли от конечной точки.

[2020-03-04 10: 53: 02,004] INFO {TRACE_LOGGER} - Отправка сообщения через конечную точку: BankOneCustRegEP, преобразующийся в адрес = http://localhost/BankAPI/api/CustomerRegistration/RegisterCustomer [2020-03-04 10: 53: 02,004] INFO {TRACE_LOGGER} - SOAPAction: null [2020-03-04 10: 53: 02,004] INFO {TRACE_LOGGER} - WSA-действие: null

И если я запрашиваю единственный API, используя тот же XML запрос, я получаю ответ от API. кто-нибудь может подсказать, пожалуйста, что я делаю не так?

Please Find My wso2 ESB Workflow

...