问候
我正在尝试从网站上获取xml文件,要求我填写用户名和API密钥。
示例:
public void GetTournaments(string userName, string apiKey, string tournamentName)
{
string getXMLAdress = "https://" + userName + ":" + apiKey + "@challonge.com/api/tournaments/" + tournamentName + "/participants.xml";
XmlDocument tournamentsXML = new XmlDocument();
tournamentsXML.Load(getXMLAdress);
}
网站上的API显示您只需要此信息..但是它总是返回我无法访问的401。现在我注意到当我把它放在我的浏览器中时,我仍然需要填写我的用户名和密码。使用上述URL时,它会显示一个弹出框,您可以在其中填写用户名/密码。
我总是可以让用户自己下载文件,但那会很麻烦。所以我想知道是否有其他方法,或者我是否可以通过C#填写弹出框。
提前谢谢。
答案 0 :(得分:2)
您可以通过WebClient传递凭据,并使用它从Web服务器加载所需的XML文件。
public static void GetFileWithCredentials(string userName, string password, string url)
{
using (WebClient wc = new WebClient())
{
wc.Credentials = new NetworkCredential(userName, password);
string xml = wc.DownloadString(url);
XmlDocument tournamentsXML = new XmlDocument();
tournamentsXML.LoadXml(xml);
}
}
如果userName包含域信息,请在重载的NetworkCredential(string userName, string password, string domain)
希望有所帮助!