我正在尝试使用控制台应用程序连接到rTorrent服务器(我只是试图使某些操作自动化)。我对此很陌生,因此可能证明这是一个配置设置,但我认为我首先会对代码产生第二意见。我可以进行webrequest,但此时返回的响应(通过端口443使用http或https)是
使用(HttpWebResponse响应=(HttpWebResponse)myHttpWebRequest.GetResponse())
我使用了与ftp进入服务器相同的凭据,但是我对rTorrent的配置了解不足,无法确定这是否可以保证从Webrequest进行访问。我没有运行服务器,所以我无权访问日志文件。基本上,我只是想确认以下代码是否应该工作。这是我用来尝试列出其他可用方法的方法(我暂时忽略该证书,直到我可以运行它为止)
private static void ListMethods()
{
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
System.Net.ServicePointManager.Expect100Continue = false;
byte[] requestData = Encoding.ASCII.GetBytes("<?xml version=\"1.0\"?><methodCall><methodName>system.listMethods</methodName></methodCall>");
Uri myUri = new Uri("http://MyIP/RPC2");
WebRequest request = WebRequest.Create(myUri);
HttpWebRequest myHttpWebRequest = (HttpWebRequest)request;
NetworkCredential myNetworkCredential = new NetworkCredential("username", "password");
CredentialCache myCredentialCache = new CredentialCache();
myCredentialCache.Add(myUri, "Basic", myNetworkCredential);
myHttpWebRequest.PreAuthenticate = true;
myHttpWebRequest.Credentials = myCredentialCache;
myHttpWebRequest.Method = "POST";
myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729;)";
myHttpWebRequest.ContentType = "text/xml";
myHttpWebRequest.ContentLength = requestData.Length;
using (Stream requestStream = myHttpWebRequest.GetRequestStream())
requestStream.Write(requestData, 0, requestData.Length);
string result = null;
using (HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream, Encoding.ASCII))
result = reader.ReadToEnd();
}
}
Console.WriteLine("Press any key to continue ...");
Console.ReadKey();
}