通过.NET使用uTorrent Web API

Mad*_*ner 4 .net c# token utorrent asp.net-web-api

我正在尝试使用Web API从uTorrent获取种子列表.获得所需的令牌可以:

WebClient client = new WebClient() { Credentials = new NetworkCredential(UserName, pass) };
StreamReader Reader = new StreamReader(client.OpenRead("http://localhost:" + port + "/gui/token.html"));
string token = Reader.ReadToEnd();
token = token.Split('>')[2].Split('<')[0]; 
// token is now something like 3LemfrO_-A-SNBXlnQ2QcQWTYydx7qOqKb1W1S54JJW74Ly3EYGgu0xQSU4AAAAA
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用它来获取种子列表时:

Reader = new StreamReader(client.OpenRead("http://localhost:" + port + "/gui/?list=1&token=" + token));
Run Code Online (Sandbox Code Playgroud)

我得到的是"错误400错误请求".

我试图手动获取令牌.在浏览器页面"http:// localhost:30303/gui /?list = 1&token = 3LemfrO_-A-SNBXlnQ2QcQWTYydx7qOqKb1W1S54JJW74Ly3EYGgu0xQSU4AAAAA"打开它应该,但在C#中没有任何变量的相同链接我仍然得到错误400.有趣的部分是如果关闭令牌认证WebClient加载页面完美有和没有

"&token=3LemfrO_-A-SNBXlnQ2QcQWTYydx7qOqKb1W1S54JJW74Ly3EYGgu0xQSU4AAAAA"
Run Code Online (Sandbox Code Playgroud)

但默认情况下启用了令牌身份验证,因此我和任何应用都应该使用它.是的,WebRequest/HttpWebRequest也没有帮助.

PS抱歉我的英语,我从来没能使它正常工作

She*_*wzy 7

你必须保存请求中的cookie

Classes.CookieAwareWebClient client = new Classes.CookieAwareWebClient() { Credentials = new NetworkCredential("shehab", "shehab") };
StreamReader Reader = new StreamReader(client.OpenRead("http://localhost:" + "8080" + "/gui/token.html"));
string token = HtmlRemoval.StripTagsRegexCompiled(Reader.ReadToEnd());
MessageBox.Show(token);

Reader = new StreamReader(client.OpenRead("http://localhost:" + "8080" + "/gui/?list=1&token=" + token));
MessageBox.Show(Reader.ReadToEnd());
Run Code Online (Sandbox Code Playgroud)

对于cookie感知类,请转到以下链接(使用带有WebClient类的CookieContainer),因为Web客户端不支持cookie.