zoukankan      html  css  js  c++  java
  • 今日头条竞价接口转发

    一、代码

    ①类名

        public class TouTiao
        {
            public class model
            {
                public string site_id { get; set; }
                public string ad_id { get; set; }
                public List<Data> data { get; set; }
            }
    
            public class Data
            {
                public string label { get; set; }
                public string lable { get; set; }
                public string value { get; set; }
            }
         }
    

      

    ②控制器

        public class DataController : BaseController
        {
    
            [HttpPost]
            public int GetTT()
            {
                using (CR_ReservationRepository db = new CR_ReservationRepository(new Models.DBContainer()))
                {
                    //正规流程
                    //1.UrlDecode:
                    //2.unicode 转中文
                    //var e = "{ "site_id": "1598708326294535", "ad_id": "", "data": [{"lable": "u623fu5b50u9762u79ef", "id": 1599334023368723, "value": "321", "label": "u623fu5b50u9762u79ef"}]}";
                    var e = System.Web.HttpContext.Current.Request.Form["data"];
                    var h = Newtonsoft.Json.JsonConvert.DeserializeObject<TouTiao.model>(e);
    
                    var entity = new Models.CR_Reservation();
                    try
                    {
                        entity.Flag = "今日头条";
                        entity.Status = 0;
                        entity.CreateTime = Utils.ObjectToDateTime( GetValue(h.data, "时间") );
                        entity.Tel = GetValue(h.data, "手机");
                        entity.Name = GetValue(h.data, "称呼");
                        entity.Area = GetValue(h.data, "面积");
                        entity.OpenSoure = e;
                    }
                    catch
                    {
                        entity.Flag = "错误";
                        entity.OpenSoure = e??"null";
                        entity.Status = 0;
                        entity.CreateTime = DateTime.Now;
                    }
                    db.Create(entity);
    
                    return db.SaveChanges();
                }
    
            }
    
            private string GetValue(List<TouTiao.Data> m, string str)
            {
                var s = "";
                try
                { 
                    s = m.FirstOrDefault(x => x.label.Contains(str)).value;
                }
                catch
                {
    
                }
                return s;
            }
    
        }
    

      

    二、过程分析

    1.看官网文档。curl自己本地代码测试成功。但是不见今日数据过来,怀疑今日头条是否转发。

    2.分析是否转发。查看IIS站点日志,发现有数据转发过来,准备监控流量

    3.监控访问请求。打开WiresharkPortable,监控iis访问IP。查看请求过程,服务器报500错误,原来表单是按键值对传值。Rquest.Form["data"]获取到数据,ok

  • 相关阅读:
    注册InstallShield
    java学习——异常处理
    IntellJ IDEA下写JUnit
    【转】光盘和U盘安装win7和ubuntu14.04全步骤
    上汽笔试题
    小白面试
    mysql
    HOWTO: Setup XCode 6.1 to work with OpenCV3 libraries
    [转]在MacOS和iOS系统中使用OpenCV
    [转]在 Mac OS X 终端里使用 Solarized 配色方案
  • 原文地址:https://www.cnblogs.com/0to9/p/9087031.html
Copyright © 2011-2022 走看看