加f1 2012修改器游戏qq好友

17yy2012方程式赛车无敌版(F1赛车终极赛2012)
滑动星星评分
此游戏的其他版本
同类游戏推荐
游戏评分:
分类:|大小:6.48 MB||日期:|
2012方程式赛车无敌版:是一款很不错的赛车小游戏,无敌版中金钱无限,无限购买汽车。游戏中,欢迎参加世界巡回方程式赛车赢得每一站的胜利,体验最高等级赛车的速度与性能,能让你体验最快的速度,那就赶快来试试吧!
如何开始:
等待游戏加载完毕点continue,接着点play game,选择赛车等级,选择赛道和设置赛车,最后点击continue即可开始游戏。
游戏目标:
战胜所有敌人。
如果你喜欢本游戏,请把17yy告诉你的好朋友,让他和你一起分享快乐! 我们的网址是:
评论加载中......
体育游戏排行榜F1赛车挑战赛2012版全新登场,全新的12条赛道,3个比赛等级。喜欢刺激吗?喜欢挑战吗?给你一次激情的挑战赛,你敢来吗?让我们一起来挑战一下F1赛车吧!
复制地址:
1.按键操作
arrows/wasd移动space/N能量加速R重玩P暂停
2.如何开始
游戏加载完成后点击正下方的continue - 然后点击play game - 选择一款车型 - 选择一个赛道 - 最后点击右下角continue开始游戏
3.游戏目标
控制好自己的F1赛车,全力比赛并力争赢得比赛的胜利吧!
大家还喜欢
登录7k7k发现更多乐趣
7K7K网页游戏
7K7K儿童游戏
法律顾问:北京市诺恒律师事务所
京公网安备
小游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照来信告知,本网站将应您的要求删除。
7k7k小游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受快乐生活……Hi,这是的腾讯微博,别吝惜你的关注,赶紧登录,和TA互动吧!
正在加载...
Copyright & 1998 - 2014 Tencent. All Rights Reserved  随着人们的生活节奏越来越快,人们的生活越来越忙碌,儿女在外奔波工作,陪伴在老人们身边的时间越来越少,难免会有越来越多的空巢老人感受不到家庭的温暖,趁年轻的时候多陪陪老人家们,不能的话就选择送一款老人吧,目前有越来越多的老人也开始喜欢上电脑这个潮货了,纽曼中老年人专属平板NewpadF1幸福上市,送长辈更多的爱!
  纽曼NewpadF1美图赏析
  纽曼Newpad作为专门为老年人打造的专属平板,操作简单、容易入手,采用更大系统桌面操作,方便视力不好的老年人操作。采用更大电子书阅读字体,便于老人的观看阅读。还首创语音菜单,纯正普通话语音播报,支持电子书语音朗读,轻松实现听书功能。输入方式多元:即可以用手指直接书写输入、也可以语音输入或者用手写输入等等,平板电脑的屏幕尺寸为9.7英寸,大尺寸的屏幕有利于老年人用不太灵活的手指点击屏幕,屏幕的角度表现可圈可点,屏幕亮度、色彩饱和度可晋身一线水准。
  纽曼NewpadF1美图赏析
  纽曼NewpadF1在产品的内置应用上贴心考虑到老年人的生活,内置了适合老年人的内容,比如养生保健知识、传统戏曲、曲艺等等,内容多达25G。人民日报、北京日报等主流报纸,也配置有网络收音机,老人晨练之时,可收听各类节目,同时支持网络电视,可观看各种电视节目。此外,产品内置包括四大名著,唐诗宋词在内的500部电子书,海量内容,等您珍藏,这些丰富的内容让老年人的平时生活不再无聊了。
  纽曼NewpadF1美图赏析
  纽曼NewpadF1平板电脑为老年人的健康考虑,系统预装了饮食手册、健康指南、穴位按摩、地铁出行指南等医书、药书、保健书,图文并茂,随时查阅。方便老人生活起居,是健康养生的好帮手。更有定点闹钟设计,按时提醒老人操练或者服药,非常贴心,是照顾老人饮食起居的好帮手,老年人平时看些健康方面的资讯,也能轻松的预防一些疾病。
  纽曼NewpadF1美图赏析
  纽曼NewpadF1平板电脑采用开放性的安卓4.0系统,下载软件全部免费,老年人不用担心收费的问题,机器性能方面表现不错,配置A9双核处理器,高达1.6GHZ澎湃动力,拥有两枚内核处理器,上网更快、观赏效果更佳、游戏更尽兴,的内存,可以满足多项任务同时运作,游戏更加给力,更多详情点击这里:/page/pageviewone/pbdnlb.html#pbdn3
下载中关村在线Android 客户端
下载中关村在线 iPhone 客户端
下载中关村在线Windows8客户端
成为中关村在线微信好友
立即登录,签到赢金豆~
登录后即可查看通知,和作者互动webqq2协议分析和qq聊天机器人简单实现 - 大漠苍狼----不抛弃,不放弃 - ITeye技术网站
博客分类:
webqq2协议分析和qq聊天机器人简单实现
通过webqq接口,可以实现发送qq消息接收qq消息等,这样,想实现一个qq聊天机器人,就不是什么难事情了了,下面开始一步步做。
1。首先调用/check?appid=1003903&uin=qq号码,来获取该qq号码验证码之类的信息。看返回结果决定是不是要输入验证码登陆。
如果返回:ptui_checkVC('1','95ab7db15e5ab17f50f25dccc098c4af2f8a4');需要输入验证码,这里需要记住这个长字符串(获取验证码图片用)以及cookie
如果返回:ptui_checkVC('0','!MPG');不需要输入验证码,验证码值用!MPG代替。可能为其他字符串,但是以感叹号开头
如果需要输入验证码:则调用
/getimage?aid=1003903&&uin=qq号码&vc_type=95ab7db15e5ab17f50f25dccc098c4af2f8a4
获取验证码图片。。。
2。开始登陆,在登陆之前,需要将密码加密,tx的加密方法很复杂,不过还好,弄到了他的js文件,然后通过java的ScriptEnginee来执行这个js来获取加密后的字符串。。。
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine se = m.getEngineByName("javascript");
se.eval(new FileReader(new File("1.js")));
Object t = se.eval("md5(md5_3(\""+p+"\")+\""+code.toUpperCase()+"\");");
return t.toString();
现在调用登陆接口,以获得相关的cookie。注意Referer。这个一定得加上,否则不成功:Referer : http://web2-/proxy.html
/login?u=qq号码&p=密码和验证码加密后的字符串&verifycode=验证码&remember_uin=1&aid==http%3A%2F%%2Floginproxy.html%3Fstrong%
3Dtrue&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert
登陆成功后,要记住返回的cookie值。
如其中ptwebqq,skey等。
3。这还没有完成,还需要再次登录,这个好像就是qq聊天接口登陆了(刚才的登陆可以理解为登陆qq网站),只有这次登陆,才算真正登陆qq,这个时候,如果你qq已经登陆,会把你的qq踢下线,而且此次登陆才算上线时间。
地址:http://web2-/channel/login,把一个数据结构post给它就够了
r=%7B%22status%22%3A%22%22%2C%22ptwebqq%22%3A%22{1}%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%22{2}%22%7D
其中{1}是ptwebqq,在第2步登陆后cookie返回的,{2}clientId,自己随便定义一个数字吧。
如果成功:
会返回一个json数据结构:
{"retcode":0,"result":
{"uin":qq号码,"mode":"master","index":1055,"port":38138,"status":"online","vfwebqq":"f72aaef4ea3d647f06f6ff353a5c6cdaaa49abb2fcdf0cee2d8d64373ac2","psessionid":"
1D636F6E6E5F2E332E26EC166D2C988252AEF4EA3D647F06F6
FF353A5C6CDAAA49ABB2FCDF0CEE2D8D64373AC2"}}
记住其中的psessionid。后面在发送消息和获取qq消息都需要这个参数。
4。发送一个qq消息给好友
地址:http://web2-/channel/send_msg
同样是post:r={"to":qq号码,"face":0,"content":"[\"23\",[\"font\",{\"name\":\"宋体\",\"size\":\"10\",\"style\":
[0,0,0],\"color\":\"000000
\"}]]","msg_id":7780001,"clientid":"","psessionid":"1D636F6E6E5F2E332E6FEC166D2725946
DD8ECFDC879FEE88D07EA92D030CEA72EE8EA3E"}
{"retcode":0,"result":"ok"}
需要把这个json UrlEncode一下再发送,否则会返回错误。
发送成功返回:{"retcode":0,"result":"ok"}
5。循环获取消息接口:
通过这个接口你可以实时的不间断的获取最新的消息。
http://web2-/channel/poll?
clientid=&psessionid=1D636F6E6E5F2E332E6FEC166DE447182
36B0CFDC879FEE88D07EA92D030CEA72EE8EA3E&t=9
返回格式:
{"retcode":0,"result":[{"poll_type":"message","value":{"msg_id":9712,"from_uin":qq号码,"to_uin":qq号码,"msg_id2":217523,"msg_type":9,"reply_ip":,"time":,"content":[["font",{"size":9,"color":"000000","style":
[0,0,0],"name":"\u5B8B\u4F53"}],"hello world"],"raw_content":"hello world"}}]}
其中的poll_type表示消息格式,message就是普通的qq消息,可以看到发送人,发送时间,以及消息的内容等。
此接口很特殊,在实现时,需要循环不间断调用,如果没有消息返回,该接口会一直等待到,有消息,读取完后要立即再调用该接口。
6.其他接口
http://face7./cgi/svr/face/getface?cache=0&type=1&fid=0&uin=号码
获取个人信息
http://web2-/api/get_single_info?tuin=qq号码
http://web2-/api/get_single_long_nick?tuin=qq号码&t=8
获取好友列表
http://web2-/api/get_user_friends
{"vfwebqq":"8fbb5274aff1ee4be177b467cbc386fc53ff1aca61d0eb51"}
获取在线的qq好友
http://web2-/channel/get_online_buddies?clientid=9547083&psessionid=1D636F6E6E5F2E332EF26EC166DF526B6D83BAB100AF215274AFF1EE4BE177B467CBC386FC53FF1ACA61D0EB51&t=0
获取最近联系人
http://web2-/api/get_recent_contact
{"vfwebqq":"8fbb5274aff1ee4be177b467cbc386fc53ff1aca61d0eb51"}
等等。。。
7.附件这是本人通过java写的一个实例客户端,启动后,处于接受qq消息状态,当收到好友发来的消息时,回返回"然后呢?"。。。。
类似qq聊天机器人吧。。。
1.js是qq密码的加密js文件。
完整代码:
import java.awt.image.BufferedI
import java.io.BufferedR
import java.io.F
import java.io.FileR
import java.io.InputS
import java.io.InputStreamR
import java.net.HttpURLC
import java.net.URL;
import java.net.URLE
import java.util.D
import java.util.R
import java.util.regex.M
import java.util.regex.P
import javax.imageio.ImageIO;
import javax.script.ScriptE
import javax.script.ScriptEngineM
import atg.taglib.json.util.JSONA
import atg.taglib.json.util.JSONE
import atg.taglib.json.util.JSONO
public class QQClient {
private int qq = -1;
private String pwd =
private int clientid = ;//这个可以随便写
private String psessionid = "";
private String refer = "http://web2-/proxy.html";
private String cookie = "";
//读取消息线程
private boolean isrun =
private Thread poolThread =new PollThread();
public Thread getPoolThread() {
return poolT
* 记录日志
private void log(String msg){
System.out.println(new Date().toLocaleString()+":"+msg);
public QQClient(int qq, String pwd) {
this.pwd =
boolean rs = checkAndLogin();
poolThread.start();//开始循环接收
log("启动成功");
} catch (Exception e) {
e.printStackTrace();
/*****************华丽的分界线*****************/
public static void main(String[] args) throws Exception{
QQClient q = new QQClient(qq号码, "123");
q.getPoolThread().join();
/*****************华丽的分界线*****************/
* 给toQQ发送一个msg消息,前提是toQQ是你的好友,要不然他收不到
public boolean sendMsg(int toQQ, String message){
JSONObject json = new JSONObject();
json.put("to", toQQ);//要发送的人
json.put("face", 0);
JSONArray msg = new JSONArray();
msg.add(message);
JSONArray font = new JSONArray();
font.add("font");
JSONObject font1 = new JSONObject().put("name", "宋体").put("size", "10");
JSONArray style = new JSONArray();
style.add(0);
style.add(0);
style.add(0);
font1.put("style", style);
font1.put("color", "000000");
font.add(font1);
msg.add(font);
json.put("content", msg.toString());
json.put("msg_id", new Random().nextInt());
json.put("clientid", clientid);
json.put("psessionid", psessionid);//需要这个才能发送
String sendMsgUrl = "http://web2-/channel/send_msg";
String content = json.toString();
content = URLEncoder.encode(content);//他要需要编码
content ="r="+
String res = postUrl(sendMsgUrl, content);
//不出意外,这是返回结果:{"retcode":0,"result":"ok"}
JSONObject rh = new JSONObject(res);
if("ok".equals(rh.getString("result"))){
} catch (JSONException e) {
e.printStackTrace();
* 检查并且登陆
private boolean checkAndLogin() throws Exception{
if(qq == -1 || pwd == null)
throw new IllegalArgumentException("qq和密码不能为空");
String checkIdUrl = "/check?appid=1003903&uin="+
String res = getUrl(checkIdUrl);
//ptui_checkVC('0','!ZLE');返回这个就不需要获取验证码了。验证码就是!ZLE
//ptui_checkVC('1','95ab7db15e5ab17f50f25dccc098c4af2f8a4');这个长字符串就需要使用了
Pattern p = Pattern. compile("\\,\\'([!\\w]+)\\'");
Matcher m = p. matcher(res);
String checkType = "";
if(m.find()){
checkType = m.group(1);
String check = "";
if(!checkType.startsWith("!")){
//需要输入验证码
String getCheckImageUrl = "/getimage?aid=1003903&uin="+qq+"&vc_type="+checkT
String file = readCheckImage(getCheckImageUrl);
log("请打开"+file+",并且在这里输入其中的字符串,然后回车:");
InputStreamReader ins = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ins);
check = br.readLine();
//不需要输入验证码
check = checkT
//开始登陆
String loginUrl = "/login?u="+qq+"&" +
"p=" +mdP(pwd, check)+
"&verifycode="+check+"&remember_uin=1&aid=1003903" +
"&u1=http%3A%2F%%2Floginproxy.html%3Fstrong%3Dtrue" +
"&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert";
res = getUrl(loginUrl);
ptuiCB('0','0','/loginproxy.html?strong=true','0','登录成功!');
ptuiCB('4','0','','0','您输入的验证码有误,请重试。');
p = pile("登录成功!");//提取最后一个字符串,看看是不是 登录成功!
m = p. matcher(res);
if(m.find()){
log("登陆成功");
//登陆失败
log(checkType);
//从cookie中提取ptwebqq,skey
p = pile("ptwebqq=(\\w+);");
m = p.matcher(cookie);
if(m.find()){
ptwebqq = m.group(1);
p = pile("skey=(@\\w+);");
m = p.matcher(cookie);
if(m.find()){
skey = m.group(1);
log("ptwebqq="+ptwebqq+",skey="+skey);
//再次登陆,只有这次登陆,才算真正登陆qq,这个时候,如果你qq已经登陆,会把你的qq踢下线,而且此次登陆才算上线。
String channelLoginUrl = "http://web2-/channel/login";
String content = "{\"status\":\"\",\"ptwebqq\":\""+ptwebqq+"\",\"passwd_sig\":\"\",\"clientid\":\""+clientid+"\"}";
content = URLEncoder.encode(content);//urlencode
content = "r="+//post的数据
res = postUrl(channelLoginUrl, content);//post
//这次登陆基本上不会发生什么问题
//下面提取很重要的2个数据psessionid ,vwebqq,通用采用正则表达式,虽然结果是个json
p = pile("\"vfwebqq\":\"(\\w+)\"");
m = p.matcher(res);
if(m.find()){
vfwebqq = m.group(1);
p = pile("\"psessionid\":\"(\\w+)\"");
m = p.matcher(res);
if(m.find()){
psessionid = m.group(1);
log("vwebqq="+vfwebqq+","+"psessionid="+psessionid);
//到此,登陆就算完成了,后面可以调用发送qq信息等接口了
* 调用tx的js来生成密钥
String mdP(String p, String code){
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine se = m.getEngineByName("javascript");
se.eval(new FileReader(new File("1.js")));
Object t = se.eval("md5(md5_3(\""+p+"\")+\""+code.toUpperCase()+"\");");
return t.toString();
}catch (Exception e) {
e.printStackTrace();
* POST一个url,contents是输入的内容
String postUrl(String url, String contents){
System.out.println("post&&&"+url);
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection();
conn.setRequestMethod("POST");//"POST" ,"GET"
if(refer != null){
conn.addRequestProperty("Referer", refer);
conn.addRequestProperty("Cookie", cookie);
conn.addRequestProperty("Accept-Charset", "UTF-8;");//GB2312,
conn.addRequestProperty("User-Agent", "Mozilla/5.0 (W U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
conn.setDoOutput(true);
conn.connect();
conn.getOutputStream().write(contents.getBytes());
if(conn.getHeaderFields().get("Set-Cookie") != null){
for(String s:conn.getHeaderFields().get("Set-Cookie")){
InputStream ins =
conn.getInputStream();
String charset = "UTF-8";
InputStreamReader inr = new InputStreamReader(ins, charset);
BufferedReader bfr = new BufferedReader(inr);
String line = "";
StringBuffer res = new StringBuffer();
res.append(line);
line = bfr.readLine();
//System.out.println(line);
}while(line != null);
System.out.println("&&&==="+res);
return res.toString();
}catch(Exception e){
e.printStackTrace();
* GET 一个url
String getUrl(String url){
System.out.println("get&&&"+url);
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection();
conn.setRequestMethod("GET");//"POST" ,"GET"
// conn.setDoOutput(true);
if(refer != null){
conn.addRequestProperty("Referer", refer);
conn.addRequestProperty("Cookie", cookie);
conn.addRequestProperty("Accept-Charset", "UTF-8;");//GB2312,
conn.addRequestProperty("User-Agent", "Mozilla/5.0 (W U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
conn.connect();
if(conn.getHeaderFields().get("Set-Cookie") != null){
for(String s:conn.getHeaderFields().get("Set-Cookie")){
InputStream ins =
conn.getInputStream();
String charset = "UTF-8";
InputStreamReader inr = new InputStreamReader(ins, charset);
BufferedReader bfr = new BufferedReader(inr);
String line = "";
StringBuffer res = new StringBuffer();
res.append(line);
line = bfr.readLine();
//System.out.println(line);
}while(line != null);
System.out.println("&&&==="+res);
return res.toString();
}catch(Exception e){
e.printStackTrace();
* 读取验证码。返回验证码文件保存的路径
private String readCheckImage(String url){
System.out.println("get&&&"+url);
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection();
conn.setRequestMethod("GET");//"POST" ,"GET"
conn.addRequestProperty("Accept-Charset", "UTF-8;");//GB2312,
conn.addRequestProperty("User-Agent", "Mozilla/5.0 (W U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
conn.connect();
//返回的cookie
if(conn.getHeaderFields().get("Set-Cookie") != null)
for(String s:conn.getHeaderFields().get("Set-Cookie")){
InputStream ins =
conn.getInputStream();
BufferedImage bi = ImageIO.read(ins);
File f =new File("qqimg.jpg");
ImageIO.write(bi, "jpg", f);
return f.getAbsolutePath();
}catch(Exception e){
e.printStackTrace();
* 当有qq消息是回调此函数
public void receiveMsg(String message, int fromQQ){
log("qq:"+fromQQ+"说:"+message);
sendMsg(fromQQ, "然后呢?");
* 通过poll一直等待服务器回应。比如收到消息啊,好友上线啊,申请好友啊之类的各类消息都会通过此接口返回,在获得数据后,应该继续poll获取下个数据
* http://web2-/channel/poll
class PollThread extends Thread{
private String pollUrl = "http://web2-/channel/poll";
public void run() {
String url = pollUrl+ "?clientid="+clientid+"&psessionid="+
while(isrun){
//线程一直等待知道服务器有返回数据
String res = getUrl(url);
JSONObject retJ = new JSONObject(res);
if(retJ.getInt("retcode") == 0){
JSONArray result = retJ.getJSONArray("result");
String poll_type = result.getJSONObject(0).getString("poll_type");
if("message".equals(poll_type)){
//说明有人发qq消息给我,
String raw_content = result.getJSONObject(0).getJSONObject("value").get("raw_content").toString();
int from_uin = result.getJSONObject(0).getJSONObject("value").getInt("from_uin");
log("收到来自:"+from_uin+":"+raw_content);
//通知客户端收到了
receiveMsg(raw_content, from_uin);
//system_message 是系统消息
} catch (JSONException e) {
e.printStackTrace();
下载次数: 532
浏览 14974
Server returned HTTP response code: 405 for URL: http://web2-/channel/login
请问是什么原因啊
我也出现这个问题……是什么原因?
anbailin 写道好像是发送消息的content有问题
发送消息的json格式要注意,出错一个都不行。
post过去的是r=content
这个content要urlencode
发送消息的json格式,参考一下
引用
{"to":qq号码,"face":0,"content":"[\"然后呢?\",[\"font\",{\"name\":\"宋体\",\"size\":\"10\",\"style\":[0,0,0],\"color\":\"000000\"}]]","msg_id":3121773,"clientid":,"psessionid":"1D636F6E6E5F2ECEF60C166D65A736DBAD1BFF163C693EF7B2C7CD03B39F1BEF949B5C2"}
内容确实不一样,我整在努力靠拢,没有找到解决办法。
好像是发送消息的content有问题发送消息的json格式要注意,出错一个都不行。post过去的是r=content这个content要urlencode发送消息的json格式,参考一下引用{"to":qq号码,"face":0,"content":"[\"然后呢?\",[\"font\",{\"name\":\"宋体\",\"size\":\"10\",\"style\":[0,0,0],\"color\":\"000000\"}]]","msg_id":3121773,"clientid":,"psessionid":"1D636F6E6E5F2ECEF60C166D65A736DBAD1BFF163C693EF7B2C7CD03B39F1BEF949B5C2"}
anbailin 写道发送消息的连接好像有问题啊!500错误。。。楼主能解决一下不了?
可能你传过去的参数有问题,就会报500
我是按照你代码中那么传的。登录是没问题的。抓包后type也是text/plain。发消息的时候就500错误了,抓包后发现type是none。理论来说他们都调用相同的方法的,我没弄明白。。。
& 上一页 1
浏览: 134539 次
来自: 北京
楼主,有后续部分麻烦你发一份给我学习研究下
tiaomahel ...
必须赞一个 用了各种方法 最终还是改了repo才能下载! Th ...
现在发送消息的接口貌似出问题了。。。发送之后得到的respon ...
,这个不错呀,还准备用js
实现这个来着 ....

我要回帖

更多关于 f1 2012 2013 的文章

 

随机推荐