美好的一天聪明人!,
所以我在C#中有一个可执行的Windows窗体项目。该表单具有登录用户控件。我需要使用API才能登录安全的Web应用程序。这是登录API URL:
https://secureURL/controllerhere/api.php?Task=Logon&Email=email&Password=password
登录API响应封装在这样的XML中:
<Response>
<Status>success</Status>
<Message>yeheey</Message>
<Token>thisisatoken</Token>
</Response>
现在,我使用以下代码处理login()方法:
public void Login(string email, password)
{
Stream data = null;
try
{
data = webClient.OpenRead("https://secureURL/controllerhere/api.php?Task=Logon&Email=email&Password=password");
reader = new StreamReader(data);
SetResponse(reader.ReadToEnd()); //here I am just saving the XML response to a string for reading later
SetStatus()//here im just traversing the response string and getting the status value
SetAPIMessage()//just getting the XML message value and setting it somewhere
} catch (Exception)
{
throw;
}finally{
if (data != null){ data.Close();}
if (reader != null){reader.Close();}
}
}
您可能已经想到,在调用此登录后,我将使用类来获取用户名,密码和令牌(来自XML响应)以处理所有这些。是关键主要是因为它需要其他API调用
现在这段代码肯定适用于登录。
我的问题是在登录或调用Login()之后,我需要使用另一个API:
https://secureURL/controllerhere/api.php?Token=tokeninhere&Task=GetAllFiles
使用与Login()相同的方法。 GetAllFiles()是方法的名称。与登录完全相同但改变了
data = webClient.OpenRead("https://secureURL/controllerhere/api.php?Token=tokeninhere&Task=GetAllFiles"
我实际上已经注销,甚至无法调用GetAllFiles()。 我只是想知道我是否需要保存任何cookie值或会话?如果是这样,我该如何在Windows窗体中执行此操作?
如果我在网络浏览器上使用任何API网址,则可以正常使用。 非常感谢您的所有帮助!