C# 无法通过HttpWebRequest C发送okta推送身份验证(使用API)#

C# 无法通过HttpWebRequest C发送okta推送身份验证(使用API)#,c#,okta-api,C#,Okta Api,我正在尝试在我的c#应用程序中集成okta推送身份验证 当我使用HttpWebRequest调用API(“/API/v1/users/userid/factors/factorid/verify”)时,我得到null响应,并进一步得到异常,因为“远程服务器返回了一个错误:(500)内部服务器错误。”但同时它与REST API一起工作正常 public String SendNotification(String pUserID, List<OTP_Devices> pOTP_Dev

我正在尝试在我的c#应用程序中集成okta推送身份验证

当我使用HttpWebRequest调用API(“/API/v1/users/userid/factors/factorid/verify”)时,我得到null响应,并进一步得到异常,因为“远程服务器返回了一个错误:(500)内部服务器错误。”但同时它与REST API一起工作正常

 public String SendNotification(String pUserID, List<OTP_Devices> pOTP_Devices)
    {
        try
        {
            String ReturnData = "";

            String FactorID = pOTP_Devices.First(s => s.FactorType == "push").ID;
            String URL = SubDomain + "/api/v1/users/" + pUserID + "/factors/" + FactorID + "/verify";
            RootObject tmpRootObject = new RootObject();
            HttpWebResponse lHttpWebResponse = null;
            HttpWebRequest lHttpWebRequest = (HttpWebRequest)WebRequest.Create(URL);

            lHttpWebRequest.Method = "POST";
            lHttpWebRequest.Accept = "application/json";
            lHttpWebRequest.ContentType = "application/json";
            lHttpWebRequest.Headers.Add("authorization", "SSWS " + APIKey);
            try
            {
                lHttpWebResponse = (HttpWebResponse)lHttpWebRequest.GetResponse();
            }
            catch (WebException ex)
            {
                lHttpWebResponse = (HttpWebResponse)ex.Response;
                if (lHttpWebResponse == null)
                {
                    throw ex;
                }
            }
            ReturnData = new StreamReader(lHttpWebResponse.GetResponseStream()).ReadToEnd();
            tmpRootObject = JSON.Decode<RootObject>(ReturnData);
            ReturnData = tmpRootObject._Links.Poll.Href;
            return ReturnData;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

     public String SendNotification(String pUserID, List<OTP_Devices> pOTP_Devices)
    {
        String ReturnData = "";
        try
        {
            String FactorID = pOTP_Devices.First(s => s.FactorType == "push").ID;
            String URL = SubDomain + "/api/v1/users/" + pUserID + "/factors/" + FactorID + "/verify";
            RestClient lRestClient = new RestClient(URL);
            RestRequest lRestRequest = new RestRequest(Method.POST);
            lRestRequest.AddHeader("Accept", "application/json");
            lRestRequest.AddHeader("Content-Type", "application/json");
            lRestRequest.AddHeader("authorization", "SSWS " + APIKey);
            IRestResponse tmpRestResponse = lRestClient.Execute(lRestRequest);
            String ResponseContent = tmpRestResponse.Content;
            RootObject lRootObject = JSON.Decode<RootObject>(ResponseContent);
            ReturnData = lRootObject._Links.Poll.Href;
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return ReturnData;
    }
公共字符串发送通知(字符串pUserID,列出pOTP_设备)
{
尝试
{
字符串ReturnData=“”;
String FactorID=pOTP_Devices.First(s=>s.FactorType==“push”).ID;
字符串URL=SubDomain+“/api/v1/users/”+pUserID+“/factors/“+FactorID+”/verify”;
RootObject tmpRootObject=新的RootObject();
HttpWebResponse lHttpWebResponse=null;
HttpWebRequest lHttpWebRequest=(HttpWebRequest)WebRequest.Create(URL);
lHttpWebRequest.Method=“POST”;
lHttpWebRequest.Accept=“application/json”;
lHttpWebRequest.ContentType=“应用程序/json”;
添加(“授权”、“SSWS”+APIKey);
尝试
{
lHttpWebResponse=(HttpWebResponse)lHttpWebRequest.GetResponse();
}
捕获(WebException ex)
{
lHttpWebResponse=(HttpWebResponse)ex.Response;
if(lHttpWebResponse==null)
{
掷骰子;
}
}
ReturnData=newstreamreader(lHttpWebResponse.GetResponseStream()).ReadToEnd();
tmpRootObject=JSON.Decode(返回数据);
ReturnData=tmpRootObject.\u Links.Poll.Href;
返回数据;
}
捕获(例外情况除外)
{
掷骰子;
}
}
公共字符串SendNotification(字符串pUserID,列出pOTP_设备)
{
字符串ReturnData=“”;
尝试
{
String FactorID=pOTP_Devices.First(s=>s.FactorType==“push”).ID;
字符串URL=SubDomain+“/api/v1/users/”+pUserID+“/factors/“+FactorID+”/verify”;
RestClient lRestClient=新的RestClient(URL);
RestRequest lRestRequest=新的RestRequest(Method.POST);
AddHeader(“接受”、“应用程序/json”);
AddHeader(“内容类型”、“应用程序/json”);
lRestRequest.AddHeader(“授权”、“SSWS”+APIKey);
IRestResponse tmpRestResponse=lRestClient.Execute(lRestRequest);
String ResponseContent=tmpRestResponse.Content;
RootObject lRootObject=JSON.Decode(ResponseContent);
ReturnData=lRootObject.\u Links.Poll.Href;
}
捕获(例外情况除外)
{
掷骰子;
}
返回数据;
}

是否检查了内部异常?是@jake.toString我检查了内部异常,它显示相同的“远程服务器返回错误:(500)内部服务器错误”