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); }
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 + "."); } }