.net调用百度api统计接口

1.首先注册百度统计官方网站->添加要统计的网址->获取js代码(就是要放到自己网站入口中的一段脚本,帖进去就可以)

 说是要过20min之后代码生效 也就是百度统计网站就可以统计出你的网站的访问记录了。

2.通过接口api获取访问数据 首先自己的网站访问量达到100pv吧 具体多少看下图的提示,红色框内官方提供的文档要看。

.net调用百度api统计接口_第1张图片

3.使用C#代码来调用接口 

1)首先准备好需要的参数 你注册网站时的 用户名 密码 开通api时的token 与统计的网站id(就是打开网站统计的网站地址的参数siteId 看下图)

.net调用百度api统计接口_第2张图片

2)参数完毕 用在线工具跑一下接口是不是通了呢(之前构建post请求数据很费劲) 在线测试工具都可以 postman....

我用的这个 http://coolaf.com  把数据参数按下图填上去 点击工具中的提交,应该问题不大(post中的参数不能用单引号,我是单引号不行的) 参数结构就是这样的一大串 别拉掉括号!!

.net调用百度api统计接口_第3张图片

3)C#请求吧 我弄了一个类 参数配置好 直接调用类中的PvData()方法就可以了 返回的是json字符串

 public  class BaiDuApi
    {
      //请求的api接口地址
       string url="https://api.baidu.com/json/tongji/v1/ReportService/getData";
//构建的post请求的参数(中间的不用变成单引号)method,metrics:参数看api有不同的请求的根据你的需求
       string PostData = "{\"header\": {\"account_type\": 1,\"password\": \"你的登录密码\",\"token\": \"开通api接口token\",\"username\":\"登录用户名\"},\"body\": { \"siteId\":\"网站那个siteId\",\"method\":\"source/all/a\",\"start_date\": \"20190212\",\"end_date\": \"20200413\",\"metrics\": \"pv_count,visitor_count\"} }";
          
       //得到返回数据 前台页面调用
       public  string PvData()
       { 
           return RequestData(url, PostData);
       }

     //公用方法 不用动
       public static string RequestData(string POSTURL, string PostData)
       {
           //发送请求的数据
           WebRequest myHttpWebRequest = WebRequest.Create(POSTURL);
           myHttpWebRequest.Method = "POST";
           UTF8Encoding encoding = new UTF8Encoding();
           byte[] byte1 = encoding.GetBytes(PostData);
           myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
           myHttpWebRequest.ContentLength = byte1.Length;
           Stream newStream = myHttpWebRequest.GetRequestStream();
           newStream.Write(byte1, 0, byte1.Length);
           newStream.Close();

           //发送成功后接收返回的XML信息
           HttpWebResponse response = 
           (HttpWebResponse)myHttpWebRequest.GetResponse();
           string lcHtml = string.Empty;
           Encoding enc = Encoding.GetEncoding("UTF-8");
           Stream stream = response.GetResponseStream();
           StreamReader streamReader = new StreamReader(stream, enc);
           lcHtml = streamReader.ReadToEnd();
           return lcHtml;
       }

    }

4)解析返回的数据吧

我是在前台转的JSON.parse(data) 变成json 对象 然后就 ....可以点出来对象了 不错完了吧;后台感觉麻烦(应该自己太菜了) 

5)看下请求成功返回的数据结构 具体参数看api吧

{
    "header": {
        "desc": "success",
        "failures": [
            
        ],
        "oprs": 1,
        "succ": 1,
        "oprtime": 0,
        "quota": 1,
        "rquota": 49992,
        "status": 0
    },
    "body": {
        "data": [
            {
                "result": {
                    "total": 1,
                    "items": [
                        [
                            [
                                {
                                    "source": "through",
                                    "name": "直接访问"
                                }
                            ]
                        ],
                        [
                            [
                                20,
                                4
                            ]
                        ],
                        [
                            
                        ],
                        [
                            
                        ]
                    ],
                    "timeSpan": [
                        "2019/04/12 - 2019/04/13"
                    ],
                    "sum": [
                        [
                            20,
                            4
                        ],
                        [
                            
                        ]
                    ],
                    "pageSum": [
                        [
                            20,
                            4
                        ],
                        [
                            
                        ],
                        [
                            
                        ]
                    ],
                    "fields": [
                        "source_type_title",
                        "pv_count",
                        "visitor_count"
                    ]
                }
            }
        ]
    }
}

 

 

 

你可能感兴趣的:(.NET)