Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET核心API,如何使用“;内容类型”;用于‘;text/xml’;在联邦快递追踪API的HTTP帖子中_C#_.net_Api_Asp.net Core_Fedex - Fatal编程技术网

C# .NET核心API,如何使用“;内容类型”;用于‘;text/xml’;在联邦快递追踪API的HTTP帖子中

C# .NET核心API,如何使用“;内容类型”;用于‘;text/xml’;在联邦快递追踪API的HTTP帖子中,c#,.net,api,asp.net-core,fedex,C#,.net,Api,Asp.net Core,Fedex,我想通过提交如下SOAP请求来进行Fedex跟踪API调用。 联邦快递网络服务最佳实践告诉我们,方法是HTTPPOST,内容类型应该是'text/xml' 我找不到任何相关的代码示例 我尝试了下面的代码。如果是HttpPost方法,则不进行调用。当我尝试使用HttpGet方法时,至少进行了调用并抛出错误 [Produces("application/json", "application/xml")] [Route(&quo

我想通过提交如下SOAP请求来进行Fedex跟踪API调用。 联邦快递网络服务最佳实践告诉我们,方法是HTTPPOST内容类型应该是'text/xml'

我找不到任何相关的代码示例

我尝试了下面的代码。如果是HttpPost方法,则不进行调用。当我尝试使用HttpGet方法时,至少进行了调用并抛出错误

        [Produces("application/json", "application/xml")]
        [Route("api/fedex")]
        [ApiController]
        public class FedexController : BaseController
        {
            private readonly IConfiguration _config;
            public const SslProtocols _Tls12 = (SslProtocols)0x00000C00;
            public const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12;
            public FedexController(IConfiguration config)
            {
                ServicePointManager.SecurityProtocol = Tls12;
                _config = config;
            }

    
            [HttpGet]
            [Route("GetFedexTrackingStatus/{trackingNumber}")]
            public IActionResult GetFedexTrackingStatus(int trackingNumber)
            {
                try
                {
                    string url = "https://wsbeta.fedex.com:443/web-services/track";
    
                    HttpClient client = new HttpClient();
                    string str1 = @"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:v16='http://fedex.com/ws/track/v16'>
      <soapenv:Header/>
        <soapenv:Body>
            <v16:TrackRequest>
                <v16:WebAuthenticationDetail>
                    <v16:UserCredential>
                        <v16:Key>XXXXXX</v16:Key>
                            <v16:Password>XXXXXX</v16:Password>
                            </v16:UserCredential>
                            </v16:WebAuthenticationDetail>
                            <v16:ClientDetail>
                                <v16:AccountNumber>XXXXXX</v16:AccountNumber>
                                    <v16:MeterNumber>XXXXXX</v16:MeterNumber>
                                        </v16:ClientDetail>
                                        <v16:TransactionDetail>
                                            <v16:CustomerTransactionId>TrackByNumber_v16</v16:CustomerTransactionId>
                                                <v16:Localization>
                                                    <v16:LanguageCode>EN</v16:LanguageCode>
                                                        <v16:LocaleCode>US</v16:LocaleCode>
                                                            </v16:Localization>
                                                        </v16:TransactionDetail>
                                                            <v16:Version>
                                                                <v16:ServiceId>trck</v16:ServiceId>
                                                                    <v16:Major>16</v16:Major>
                                                                        <v16:Intermediate>0</v16:Intermediate>
                                                                            <v16:Minor>0</v16:Minor>
                                                                                </v16:Version>
                                                                                <v16:SelectionDetails>
                                                                                    <v16:CarrierCode>FDXE</v16:CarrierCode>
                                                                                        <v16:PackageIdentifier>
                                                                                            <v16:Type>TRACKING_NUMBER_OR_DOORTAG</v16:Type>
                                                                                                    <v16:Value>192221280879</v16:Value>
                                                                                                    </v16:PackageIdentifier>
                                                                                                    <v16:PagingDetail></v16:PagingDetail>
                                                                                                        <v16:SecureSpodAccount/>
                                                                                                            <v16:Destination>
                                                                                                            </v16:Destination>
                                                                                                        </v16:SelectionDetails>
                                                                                                        </v16:TrackRequest>
                                                                                                    </soapenv:Body>
                                                                                                    </soapenv:Envelope>";
                    HttpContent content = new StringContent(str1, Encoding.UTF8, "text/xml");
                    
                    var response = client.PostAsync(url, content);
                    var result = response.Result.Content.ReadAsStringAsync();
                    return StatusCode(200, result.Result);
                }
                catch (Exception ex)
                {
                    return StatusCode(500, "Error");
                }
                
            }
}
有人打过这些SOAPRequest电话吗?如何将XML作为输入传递


谢谢

您的XML中有一些您可能不想发布的信息。贴出了答案。谢谢。我清除了它。您的XML中有一些您可能不想发布的信息。贴出了答案。谢谢。我清除了它。
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring xml:lang=\"en\">Fault</faultstring><detail><cause>UnrecoverableClientError</cause><code>SchemaError</code><desc>validation failure for TrackRequest Error:cvc-complex-type.2.4.a: Invalid content was found starting with element 'v16:SecureSpodAccount'. One of '{\"http://fedex.com/ws/track/v16\":CustomerSpecifiedTimeOutValueInMilliseconds, \"http://fedex.com/ws/track/v16\":ResponseFormat}' is expected.</desc></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>"