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