在C#窗体中使用HTTPS API调用

时间:2014-10-16 04:06:44

标签: c# winforms api https webclient

美好的一天聪明人!,

所以我在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网址,则可以正常使用。 非常感谢您的所有帮助!

0 个答案:

没有答案