0
我試圖將一個基於命令行的HTTP post發佈到網頁,其中此命令行可以登錄和檢索某些數據或執行其他操作。我擁有所有的代碼,但它不喜歡靜態字段Main中的非靜態事物,我該如何解決這個問題?由於保護級別而無法訪問C#命令行
static void Main(string[] args)
{
System.Console.Title = "Test Project";
bool GoodUsername = false;
string Username = "";
while (GoodUsername == false)
{
Console.WriteLine("Please enter your username.");
Username = Console.ReadLine();
Console.WriteLine("Is " + Username + " correct? Type Yes or No");
string YesNo = Console.ReadLine();
if (YesNo == "yes" || YesNo == "Yes" || YesNo == "y")
{
GoodUsername = true;
//return;
}
}
bool GoodPassword = false;
string Password = "";
while (GoodPassword == false)
{
Console.WriteLine("Please enter your password.");
Password = Console.ReadLine();
Console.WriteLine("Attempting to log in.");
string PostURL = "username=" + Username + "&password=" + Password + "&login=Login";
string URLs = "http://c-rpg.net/index.php?page=login";
string Response = CRPG.CRPG.DoPost(URLs, PostURL);
}
}
是我的代碼從一個類。
string Response = CRPG.CRPG.DoPost(URLs, PostURL);
給我錯誤。
CookieContainer cookies = new CookieContainer();
protected string DoPost(string URLr, string POST)
{
Uri url = new Uri(URLr);
HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWRequest.Headers.Set("Pragma", "no-cache");
HttpWRequest.Timeout = 5000;
HttpWRequest.Method = "POST";
HttpWRequest.ContentType = "application/x-www-form-urlencoded";
HttpWRequest.CookieContainer = cookies;
byte[] PostData = System.Text.Encoding.ASCII.GetBytes(POST);
HttpWRequest.ContentLength = PostData.Length;
Stream tempStream = HttpWRequest.GetRequestStream();
tempStream.Write(PostData, 0, PostData.Length);
tempStream.Close();
HttpWebResponse HttpWResponse = (HttpWebResponse)HttpWRequest.GetResponse();
Stream receiveStream = HttpWResponse.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream);
string rcstr = "";
Char[] read = new Char[256];
int count = 0;
while ((count = readStream.Read(read, 0, 256)) > 0)
{
rcstr += new String(read, 0, count);
}
HttpWResponse.Close();
readStream.Close();
return rcstr;
}
我可以公開它,它給了我錯誤。
Error 1 An object reference is required for the non-static field, method, or property 'CRPG.CRPG.DoPost(string, string)' c:\users\sales\documents\visual studio 2010\Projects\Test_CL\Test_CL\Program.cs 40
如何讓它們變爲靜態?我可以做公共靜態字符串DoPost,但如何爲cookie? – Illuminati