0
我在尝试编写一个简单的浏览器游戏机器人的问题。RestSharp在响应对象上没有cookie
游戏可以在这里找到http://en.gladiatus.gameforge.com/game/。
问题是,我登录后,我需要获取将用于未来请求的cookie,但RestResponse.Cookies始终为空。
下面是一个可以解释我的问题的工作登录代码。
public bool DoLogin() {
var client = new RestClient("http://s2.en.gladiatus.gameforge.com"); //Server 2 on England.
var request = new RestRequest("/game/index.php?mod=start&submod=login", Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("name", "bot_test"); //test account.
request.AddParameter("pass", "bot_test_pass");
var response = client.Execute(request);
var match = System.Text.RegularExpressions.Regex.Match(
response.Content,
"href=\"index\\.php\\?mod=news&submod=serverEvents&sh=([^&]*?)\"");
var _Successful = match.Success;
MessageBox.Show(response.Cookies.Count.ToString()); //Always 0
if(!_Successful) //Could not login.
return false;
var _SecureHash = match.Groups[0].Value;
return _Successful;
}
我尝试了一切,我知道(这并不多),但我无法找到我的代码有什么问题。
感谢您的阅读!
尝试使用网络流量调试器(例如Fiddler http://www.telerik.com/fiddler)检查响应:很可能您在响应中没有收到任何cookie。 – Isantipov 2015-03-02 23:58:35
嗯你说得对。用浏览器做同样的事情我会收到一个cookie。要检查为什么现在。谢谢您的帮助。 – MHC 2015-03-03 00:12:50
你知道了吗? – 2015-03-17 16:59:54