开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2389|回复: 5
收起左侧

[C#求助] c# netjson getjson()参数问题

[复制链接]
结帖率:96% (55/57)
发表于 2017-2-27 10:06:09 高大上手机用户 | 显示全部楼层 |阅读模式   江苏省宿迁市
最近在研究一份源码 dll里有一个命令 用vs2010看了下 是netjson类 getjson方法 有三个参数 getjson(协yi头,url地址,参数三)  以前没接触过c# 请问有方法弄清楚第三个参数是干什么的嘛?
结帖率:0% (0/2)

签到天数: 16 天

发表于 2017-2-27 11:14:11 | 显示全部楼层   浙江省温州市
源码贴出来
回复 支持 反对

使用道具 举报

结帖率:96% (55/57)
 楼主| 发表于 2017-2-27 13:03:06 | 显示全部楼层   江苏省南京市

using CommonLib;
using DaiWan.Lib;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Http;

namespace DaiWan.Tentacle.Controllers
{
    public class LolCoreController : ApiController
    {

        // GET: combat/API
        [HttpGet]
        public JObject UserArea(string auth, string keyword)
        {
            try
            {
                string referer = @"http://game.tgp.qq.com/lol/search/v1603/search.html?kw=#kw#"
                                .Replace("#kw#", HttpUtility.UrlEncode(keyword));

                string url = @"http://api.pallas.tgp.qq.com/core/search_player?callback=jQuery1111026891932846046984_#jqueryext#&key=#key#&_=#t#"
                               .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                               .Replace("#key#", HttpUtility.UrlEncode(keyword))
                               .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());

                JArray jarray = new JArray();
                JObject jo = APILib.GetJSON(referer, url,auth);
                JObject json = APILib.Iced(jo["data"].ToObject<JArray>());
                return json;
            }
            catch (Exception ex)
            {
                LogHelper.LogError("UserArea", ex);
                return APILib.Error(ex.Message);
            }
        }

        /// <summary>
        /// 个人基本信息
        /// </summary>
        /// <param name="qquin"></param>
        /// <param name="vaid"></param>
        /// <returns></returns>

        [HttpGet]
        public JObject UserHotInfo(string auth, string qquin, string vaid)
        {
            try
            {
                string referer = @"http://game.tgp.qq.com/lol/profile/v1602/overview.shtml?qquin=#qquin#&area_id=#area_id#"
                                  .Replace("#qquin#", qquin)
                                  .Replace("#area_id#", vaid);

                string url = "http://api.pallas.tgp.qq.com/core/get_user_hot_info?callback=jQuery111106649491745047271_#jqueryext#&area_id=#area_id#&qquin=#qquin#&_=#t#"
                                .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                .Replace("#area_id#", vaid)
                                .Replace("#qquin#", qquin)
                                .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());

                JObject jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JObject>());
                return json;
            }
            catch (Exception ex)
            {
                LogHelper.LogError("UserHotInfo", ex);
                return APILib.Error(ex.Message);
            }
        }


        [HttpGet]
        public JObject UserExtInfo(string auth, string qquin, string vaid)
        {
            try
            {
                string para = @"[[7,{""item_num"":1,""items"":[{""qquin"":""#qquin#"",""area_id"":""#vaid#""}]}],[28,{""qquin"":""#qquin#"",""area_id"":""#vaid#""}],[29,{""qquin"":""#qquin#"",""area_id"":""#vaid#"",""top_mvp_type"":0}],[35,{""qquin"":""#qquin#"",""area_id"":""#vaid#"",""champion_id"":0}],[36,{""qquin"":""#qquin#"",""area_id"":""#vaid#""}]]"
                                    .Replace("#qquin#", qquin)
                                    .Replace("#vaid#", vaid);

                string referer = @"http://game.tgp.qq.com/lol/profile/v1602/overview.shtml?qquin=#qquin#&area_id=#area_id#"
                                    .Replace("#qquin#", qquin)
                                    .Replace("#area_id#", vaid);

                string url = @"http://api.pallas.tgp.qq.com/core/tcall?callback=jQuery17206660636231168173_#jqueryext#&p=#p#&_cache_time=#cache_time#"
                                    .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                    .Replace("#p#", para)
                                    .Replace("#cache_time#", "300");
                JObject jo = APILib.GetJSON(referer, url,auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JArray>());
                return json;
            }
            catch (Exception ex)
            {
                LogHelper.LogError("UserExtInfo", ex);
                return APILib.Error(ex.Message);
            }
        }


        /// <summary>
        /// 战斗概览信息
        /// </summary>
        /// <param name="qquin"></param>
        /// <param name="vaid"></param>
        /// <returns></returns>
        [HttpGet]
        public JObject BattleSummaryInfo(string auth, string qquin, string vaid)
        {

            Random random = new Random();
            string p = @"[[14,{""battle_type"":-1,""qquin"":""#qquin#"",""area_id"":""#area_id#""}],[44,{""sid"":5,""qquin"":""#qquin#"",""area_id"":""#area_id#""}],[44,{""sid"":4,""qquin"":""#qquin#"",""area_id"":""#area_id#""}],[44,{""sid"":3,""qquin"":""#qquin#"",""area_id"":""#area_id#""}],[44,{""sid"":2,""qquin"":""#qquin#"",""area_id"":""#area_id#""}],[44,{""sid"":1,""qquin"":""#qquin#"",""area_id"":""#area_id#""}]]"
                        .Replace("#qquin#", qquin)
                        .Replace("#area_id#", vaid);
            string referer = @"http://game.tgp.qq.com/lol/profile/v1602/overview.shtml?qquin=#qquin#&area_id=#area_id#";
            string url = @"http://api.pallas.tgp.qq.com/core/tcall?callback=jQuery#jquery#_#jqueryext#&p=#p#&_cache_time=#cache_time#"
                                .Replace("#p#", HttpUtility.UrlEncode(p))
                                .Replace("#jquery#", "1111009980190638452" + random.Next(10, 99))
                                .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                .Replace("#t#", DateHelper.ConvertDateTime2Long12(DateTime.Now).ToString())
                                .Replace("#cache_time#", "300"); ;
            JObject jo = null;
            try
            {
                jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JArray>());
                return json;
            }
            catch (Exception ex)
            {
                if (jo != null)
                {
                    return APILib.Iced(jo);
                }

                LogHelper.LogInfo(referer + "\n" + url + "\n" + "return json is null");
                LogHelper.LogError("BattleSummaryInfo", ex);
                return APILib.Error("接口 BattleSummaryInfo 调用错误");
            }


        }

        /// <summary>
        /// 个人战绩列表
        /// </summary>
        /// <param name="qquin"></param>
        /// <param name="vaid"></param>
        /// <param name="p"></param>
        /// <returns></returns>
        [HttpGet]
        public JObject CombatList(string auth,string qquin, string vaid, int pagesize, int p)
        {
            try
            {
                string para = @"[[3,{""qquin"":""#qquin#"",""area_id"":""#area_id#"",""bt_num"":""0"",""bt_list"":[],""champion_id"":0,""offset"":#offset#,""limit"":#limit#,""mvp_flag"":-1}]]"
                                    .Replace("#qquin#", qquin)
                                    .Replace("#area_id#", vaid)
                                    .Replace("#limit#", pagesize.ToString())
                                    .Replace("#offset#", (p * pagesize).ToString());

                string callback = "jQuery17209483979241204745_#jqueryext#"
                                    .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());

                string referer = @"http://api.tgp.qq.com/profile/v1602/overview.shtml?vuin=#vuin#&vaid=#vaid#"
                                    .Replace("#vuin#", qquin)
                                    .Replace("#vaid#", vaid);

                string url = @"http://api.pallas.tgp.qq.com/core/tcall?callback=#callback#&p=#p#&_=#t#"
                                    .Replace("#callback#", HttpUtility.UrlEncode(callback))
                                    .Replace("#p#", HttpUtility.UrlEncode(para))
                                    .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());

                JObject jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JArray>());

                return json;

            }
            catch (Exception ex)
            {
                LogHelper.LogError("CombatList", ex);

                return APILib.Error(ex.Message);
            }
        }

        /// <summary>
        ///  通过gameid返回具体单场对战信息
        /// </summary>
        /// <param name="qquin"></param>
        /// <param name="vaid"></param>
        /// <param name="gameid"></param>
        /// <returns></returns>
        [HttpGet]
        public JObject GameDetail(string auth, string qquin, string vaid, string gameid)
        {
            Random random = new Random();
            string para = @"""area_id"":""#area_id#"",""game_id"":#game_id#"
                                .Replace("#area_id#", vaid)
                                .Replace("#game_id#", gameid)
                                .Replace(@"""", HttpUtility.UrlEncode(@""""));


            string referer = @"http://game.tgp.qq.com/lol/profile/v1602/history.shtml?qquin=#vuin#&area_id=#vaid#&game_id=#game_id#&battle_type=0&champion_id=0&cur_page=1"
                  .Replace("#vuin#", qquin)
                  .Replace("#vaid#", vaid)
                  .Replace("#game_id#", gameid);


            string url = @"http://api.pallas.tgp.qq.com/core/get_battle_info?p={#p#}&callback=jQuery#jquery#_#jqueryext#&_=#t#"
                             .Replace("#dtag#", qquin)
                             .Replace("#p#", para)
                             .Replace("#jquery#", "1111015899130702018" + random.Next(100, 999))
                             .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                             .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());
            JObject jo = null;
            try
            {
                jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JObject>());
                return json;
            }
            catch (Exception ex)
            {
                if (jo != null)
                {
                    return APILib.Iced(jo);
                }

                LogHelper.LogInfo(referer + "\n" + url + "\n" + "return json is null");
                LogHelper.LogError("GameDetail", ex);
                return APILib.Error("接口 GameDetail 调用错误");
            }
        }

        [HttpGet]
        public JObject GetChampionDetail(string auth,string champion_id)
        {

            string referer = @"http://game.tgp.qq.com/lol/champions/v1605/info.shtml?champion_id=#champion_id#"
                                .Replace("#champion_id#", champion_id);
            string url = "http://cdn.tgp.qq.com/pallas/conf/heros/#champion_id#.js?t=#t#&_=#t#"
                                .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                .Replace("#champion_id#", champion_id); ;
            string host = "cdn.tgp.qq.com";
            string jsonrawdata = APILib.GetJSONRawData(host, referer, url, auth);

            string reg = @"data:\s*({[\S\s]*),updated:";
            string result = CommonLib.TextHelper.MatchContent(reg, jsonrawdata, RegexOptions.Multiline, 1);
            JObject jobject = JObject.Parse(result);
            JObject json = APILib.Iced(jobject);
            return json;
        }

        [HttpGet]
        public JObject GetMastery(string auth,string qquin, string vaid)
        {
            Random random = new Random();
            string referer = @"http://game.tgp.qq.com/lol/profile/v1602/talent.html?nid=45&qquin=#qquin#&area_id=#area_id#"
                        .Replace("#qquin#", qquin)
                        .Replace("#area_id#", vaid);

            string url = @"http://api.pallas.tgp.qq.com/core/get_player_mastery_spell?callback=jQuery#jquery#_#jqueryext#&area_id=#area_id#&qquin=#qquin#&get_type=2&dtag=runes&_=#t#"
                                .Replace("#jquery#", "1111009980190638452" + random.Next(10, 99))
                                .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                .Replace("#t#", DateHelper.ConvertDateTime2Long12(DateTime.Now).ToString())
                                .Replace("#qquin#", qquin)
                                .Replace("#area_id#", vaid);
            JObject jo = null;
            try
            {
                jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JObject>());
                return json;
            }
            catch (Exception ex)
            {
                if (jo != null)
                {
                    return APILib.Iced(jo);
                }

                LogHelper.LogInfo(referer + "\n" + url + "\n" + "return json is null");
                LogHelper.LogError("GetMastery", ex);
                return APILib.Error("接口 GetMastery 调用错误");
            }



        }



        [HttpGet]
        public JObject UserChampion(string auth, string qquin, string vaid)
        {

            string p = @"[[35,{""area_id"":""#area_id#"",""qquin"":""#qquin#""}]]"
                       .Replace("#qquin#", qquin)
                       .Replace("#area_id#", vaid);

            Random random = new Random();
            string referer = @"http://game.tgp.qq.com/lol/profile/v1602/my_champs.shtml?nid=44&qquin=#qquin#&area_id=#area_id#"
                        .Replace("#qquin#", qquin)
                        .Replace("#area_id#", vaid);


            string url = @"http://api.pallas.tgp.qq.com/core/tcall?callback=jQuery#jquery#_#jqueryext#&p=#p#&_=#t#"
                                .Replace("#jquery#", "1111009980190638452" + random.Next(10, 99))
                                .Replace("#jqueryext#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString())
                                .Replace("#p#", HttpUtility.UrlEncode(p))
                                .Replace("#t#", DateHelper.ConvertDateTime2Long12(DateTime.Now).ToString())
                                .Replace("#qquin#", qquin)
                                .Replace("#area_id#", vaid);
            JObject jo = null;
            try
            {
                jo = APILib.GetJSON(referer, url, auth);
                //正常调用并返回
                JObject json = APILib.Iced(jo["data"].ToObject<JArray>());
                return json;
            }
            catch (Exception ex)
            {
                if (jo != null)
                {
                    return APILib.Iced(jo);
                }

                LogHelper.LogInfo(referer + "\n" + url + "\n" + "return json is null");
                LogHelper.LogError("UserChampion", ex);
                return APILib.Error("接口 UserChampion 调用错误");
            }



        }



        [HttpGet]
        public JObject GetChampionSkin(string auth,string champion_id, string skinid)
        {

            string result = @"http://cdn.tgp.qq.com/pallas/images/skins/original/#champion_id#-#skinid#.jpg"
                                .Replace("#champion_id#", champion_id)
                                .Replace("#skinid#", skinid);

            return APILib.Data(result);
        }


        [HttpGet]
        public JObject Free(string auth)
        {
            try
            {
                string referer = @"http://game.tgp.qq.com/lol/champions/v1605/lib.shtml";
                string url = @"http://lol.qq.com/biz/hero/free.js?t=#t#&_=#t#"
                                    .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());
                string host = "lol.qq.com";

                string jsonrawdata = APILib.GetJSONRawData(host, referer, url,auth);

                string reg = @"""data"":\s*({.*}),(\r\n)*\s*""";
                string result = CommonLib.TextHelper.MatchContent(reg, jsonrawdata, RegexOptions.Multiline, 1);
                JObject jobject = JObject.Parse(result);
                JObject json = APILib.Iced(jobject);
                return json;
            }
            catch (Exception ex)
            {
                LogHelper.LogError("Free", ex);
                return APILib.Error(ex.Message);
            }
        }


        [HttpGet]
        public JObject ChampionRank(string auth ,string championid, int p)
        {
            try
            {
                string referer = @"http://game.tgp.qq.com/lol/champions/v1605/rank.shtml";
                string url = @"http://img.lol.qq.com/js/cevRank/#championid#/#p#.js?t=#t#"
                                    .Replace("#championid#", championid)
                                    .Replace("#p#", p.ToString())
                                    .Replace("#t#", DateHelper.ConvertDateTime2Long13(DateTime.Now).ToString());

                string host = "img.lol.qq.com";
                string jsonrawdata = APILib.GetJSONRawData(host, referer, url, auth);
                string reg = @"""data"":\s*({.*}),(\r\n)*\s*""";
                string result = CommonLib.TextHelper.MatchContent(reg, jsonrawdata, RegexOptions.Multiline, 1);
                JObject jobject = JObject.Parse(result);
                JObject json = APILib.Iced(jobject);
                return json;
            }
            catch (Exception ex)
            {
                LogHelper.LogError("ChampionRank", ex);
                return APILib.Error(ex.Message);
            }
        }



    }
}
回复 支持 反对

使用道具 举报

结帖率:96% (55/57)
 楼主| 发表于 2017-2-27 13:04:40 | 显示全部楼层   江苏省南京市
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2017-2-27 22:07:32 | 显示全部楼层   新疆维吾尔自治区巴音郭楞蒙古自治州
暖冰 发表于 2017-2-27 13:03
using CommonLib;
using DaiWan.Lib;
using Newtonsoft.Json;

实现了个http的请求和转成json对象.
原理:
Http请求,得到Json字符串,接着用Newtonsoft.Json解析字符串Json为Json对象.


HttpCode框架v3.9.16.10.24 一个有态度的开源.Net Http请求框架
http://bbs.125.la/forum.php?mod=viewthread&tid=13988259
(出处: 精易论坛)

Newtonsoft.Json 类库(开源)

回复 支持 反对

使用道具 举报

发表于 2017-5-29 11:12:00 | 显示全部楼层   江苏省盐城市
支持一下.支持一下.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表