您的位置:首页 > 其它

Q宠大乐斗协议全面分析(3)--开通乐斗

2010-10-23 06:03 357 查看
开通乐斗前先要判断下是否开通了乐斗

http://fight.pet.qq.com/cgi-bin/petpk?cmd=enter

get方式提交,服务器返回 result:msg:类结果。这种返回格式是QQ空间大多数功能及应用的返回格式

result 返回0正常 返回1有两种情况,一个是没有开通乐斗另一个是开通了乐斗,但是没有领取QQ宠物

开通乐斗需要2步

第一步开通乐斗应用

提交地址:http://w.cnc.qzone.qq.com/cgi-bin/qzapp/userapp_addone.cgi

提交方式:post

提交参数uin={0}&appid=362&countryid=1&provinceid=1&cityid=403&_scorr_20100723_=http%3A%2F%2Fuser.qzone.qq.com%2F{0}%7Chttp%3A%2F%2Fuser.qzone.qq.com%2F{0}

{0}为QQ号码

服务器返回 ret:0 表示成功

如果是新号,没有领取过QQ宠物的话需要进行第二步,领取QQ宠物

提交地址:http://fight.pet.qq.com/cgi-bin/petpk?cmd=regist&sex={0}

{0}表示宠物的性别 102为男 103为女

提交方式:get

返回 result:'0' 成功

相关代码:

代码

/// <summary>
/// 开通乐斗
/// </summary>
/// <returns></returns>
public bool openLeDou(out string message)
{
message = "";
string url = "http://w.cnc.qzone.qq.com/cgi-bin/qzapp/userapp_addone.cgi";
string postData = string.Format("uin={0}&appid=362&countryid=1&provinceid=1&cityid=403&_scorr_20100723_=http%3A%2F%2Fuser.qzone.qq.com%2F{0}%7Chttp%3A%2F%2Fuser.qzone.qq.com%2F{0}",user.Username);

HttpHelper.Encoding = Encoding.GetEncoding("utf-8");
string result = HttpHelper.GetHtml(url,postData,true,user.Cookie);
bool isOk = false;
if (result != "")
{
string ret = Utils.getStringByRegex(result, "(\"ret\":)(?<ret>.+?)(,)", "ret");
message = Utils.getStringByRegex(result, "(\"msg\":\")(?<msg>.+?)(\")","msg");
if (ret == "0")
isOk = true;
}
return isOk;
}

/// <summary>
/// 加载乐斗,判断乐斗状态
/// </summary>
/// <param name="message">返回服务器消息</param>
/// <returns>0正常进入,1可能没有领取宠物或者没有开通空间</returns>
public int LoadLeDou(out string message)
{
int ret = -1;
message = "";
string url = "http://fight.pet.qq.com/cgi-bin/petpk?cmd=enter";
HttpHelper.Encoding = Encoding.GetEncoding("gb2312");
string result = HttpHelper.GetHtml(url, user.Cookie);
if (result != "")
{
ret = Utils.ToInt32(Utils.getStringByRegex(result, "(result:')(?<ret>.+?)(')", "ret"));
message = Utils.getStringByRegex(result, "(msg:')(?<msg>.+?)(')", "msg");
}

return ret;
}

/// <summary>
/// 领取宠物
/// </summary>
/// <param name="sex">1男2女</param>
/// <returns>是否成功领取</returns>
public bool lingquCW(int sex)
{
string url = string.Format("http://fight.pet.qq.com/cgi-bin/petpk?cmd=regist&sex={0}", sex == 1 ? "102" : "103");
HttpHelper.Encoding = Encoding.GetEncoding("gb2312");
string result = HttpHelper.GetHtml(url, user.Cookie);

if (result.Contains("result:'0'"))
return true;
else
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: