public byte[] GetParams(HttpWebRequest request, HttpPackage package)
        {
            request.Method = "POST";//以POST方式传递数据
            request.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
            //request.Headers.Add(Constants.HTTP_COMM_PROTOCOL, Constants.HTTP_VERSION);
            request.Headers.Add(Constants.HTTP_COMM_PROTOCOL, "");

            StringBuilder sb = new StringBuilder();

            IDictionary<string, string> param = JsonUtil.toParameters(package.GetParams());

            foreach (string key in param.Keys)
            {
                sb.Append(key);
                sb.Append('=');
                sb.Append(param[key]);
                sb.Append('&');
            }
            return Encoding.UTF8.GetBytes(sb.ToString());
            //return Encoding.Default.GetChars(Encoding.Default.GetBytes(sb.ToString()));
            //return Encoding.UTF8.GetString(bs, 0, bs.Length);
            //return Constants.HTTP_JSON_PARAM+"=" + HttpUtility.UrlEncode(b64s) +
            //    "&" + Constants.HTTP_REQUEST_CODING+ "=" + Encoding.Default.BodyName +
            //    //"&__version__=0.1"+
            //    "&" + Constants.HTTP_RESULT + "=json";
        }
        public byte[] GetParams(HttpWebRequest request, HttpPackage package)
        {
            request.Method = "POST";//以POST方式传递数据
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add(Constants.HTTP_COMM_PROTOCOL, Constants.HTTP_VERSION);

            StringBuilder sb = new StringBuilder();
            sb.Append('{');
            sb.Append("\"location\":");
            sb.Append("\"" + package.location + "\",");
            sb.Append("\"timestamp\":");
            sb.Append(Utils.Timestamp);
            sb.Append(",\"sequeueid\":");
            sb.Append(Utils.Sequeue);

            //增加版本信息
            sb.Append(",\"version\":{\"major\":");
            sb.Append(package.Version.Major);
            sb.Append(",\"minor\":");
            sb.Append(package.Version.Minor);
            sb.Append("}");

            //增加参数信息
            sb.Append(",\"data\":");
            IDictionary<string, object> dict = package.GetParams();
            //Lin.Core.Web.Json.DataContractJsonSerializer dc = new Lin.Core.Web.Json.DataContractJsonSerializer(typeof(Dictionary<string, object>));
            ////String jsonString = "{}";
            //MemoryStream ms = new MemoryStream();
            //dc.WriteObject(ms, dict);
            //byte[] tmp = ms.ToArray();
            //sb.Append(Encoding.UTF8.GetString(tmp, 0, tmp.Length));

                sb.Append(JsonUtil.Serialize(dict));

            //sb.Append("{\"data\":\"测试中文\"}");

            sb.Append("}");

            string b64s = System.Convert.ToBase64String(Encoding.Default.GetBytes(sb.ToString()));
            //Console.WriteLine("value:" + sb.ToString());
            //Console.WriteLine("b64s:" + b64s);
            //Console.WriteLine("coding:" + Encoding.Default.EncodingName);
            string r = Constants.HTTP_JSON_PARAM+"=" + HttpUtility.UrlEncode(b64s) +
                "&" + Constants.HTTP_REQUEST_CODING+ "=" + Encoding.Default.BodyName +
                //"&__version__=0.1"+
                "&" + Constants.HTTP_RESULT + "=json";
            return Encoding.ASCII.GetBytes(r);
        }
Ejemplo n.º 3
0
 public static void AddValidation(HttpPackage package, Lin.Comm.Http.ValidationErrorData error)
 {
     IDictionary<string, object> param = package.GetParams();
     foreach (KeyValuePair<string,object> vp in param)
     {
         AddValidation(vp.Value as Lin.Core.ViewModel, error, vp.Key + ".");
     }
 }