远程服务器返回错误:(410)在C#中消失

时间:2017-06-29 15:26:19

标签: c# asp.net asp.net-web-api2 http-status-code-410

我有一个由第三方应用程序使用的Web API2应用程序。当应用程序到达我的终点时,我的应用程序会发送oAuth凭据进行身份验证,并从第三方应用程序获取结果。

最近有些交易失败,当我添加一些日志时,我看到错误:远程服务器返回错误:(410)所有失败的交易都发生了Gone 。不幸的是,当我调用我的应用程序时,我无法重现此问题。以下是我正在使用的代码。可能导致此错误的问题是什么?

 public async Task<customerModel>  SendSigned(string url)
{
    customerModel customermodel = null;
    try
    {
        OAuthBase oauthBase = new OAuthBase();

        string oAuthKey = ConfigurationManager.AppSettings["oAuthKey"];
        string oAuthSecret = ConfigurationManager.AppSettings["oAuthSecret"];
        string timestamp = oauthBase.GenerateTimeStamp();
        string nonce = oauthBase.GenerateNonce();
        string normalizedUrl;
        string normalizedRequestParameters;
        string sig = HttpUtility.UrlEncode(oauthBase.GenerateSignature(
            new Uri(url), oAuthKey, oAuthSecret, string.Empty, string.Empty,
            "GET", timestamp, nonce, out normalizedUrl, out normalizedRequestParameters));
        string requestUrl = String.Format("{0}?{1}&oauth_signature={2}", normalizedUrl, normalizedRequestParameters, sig);

        HttpWebRequest request = null;
        request = (HttpWebRequest)HttpWebRequest.Create(requestUrl);
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
           myXMLDocument = new XmlDocument();
           customermodel = GetCustomerInformation(response);
        }

        return await Task.Run(() => customermodel);
    }
    catch (Exception ex)
    {
       _logger.Error("Error in SendSigned method", ex.InnerException);
        return customermodel;
    }
}

1 个答案:

答案 0 :(得分:0)

410的解释是 目标资源在原始服务器上不再可用,并且此条件可能是永久的 基于 this链接(类似于404)

我建议您考虑一下您最近对

所做的更改
  1. API签名
  2. 文件夹重组/重组资产/资源
  3. 路由更改
  4. 重命名资源