c#后端接收的数据乱码
string UserName = "";
string Pwd = b";
string sql="code = ''";
CustomSqlSection customSqlSection = Gateway.Default.FromCustomSql(sql);
DataTable dataTable = customSqlSection.ToDataSet().Tables[0];
string url = @"" + dataTable.Rows[0]["Lookup_Value_Name"].ToString()+"";
//HttpContext 转换为字符串格式
byte[] postData = HttpContext.Current.Request.BinaryRead(HttpContext.Current.Request.ContentLength);
string strReq = Encoding.UTF8.GetString(postData);
//转为Base64格式
byte[] b = System.Text.Encoding.Default.GetBytes(UserName +":"+ Pwd);
string UserEncoding= Convert.ToBase64String(b);
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//增加HTP请求头
req.Headers.Add("Authorization", "Basic " + UserEncoding);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(strReq.ToString()); // 把字符串转换为字节
req.ContentLength = data.Length; // 请求长度
using (Stream reqStream = req.GetRequestStream()) // 获取
{
reqStream.Write(data, 0, data.Length); // 向当前流中写入字节
reqStream.Close(); // 关闭当前流
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); //响应结果
Stream stream = resp.GetResponseStream();
// 获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
m_iLog.Info("获取发送结果:\r\n" + result.ToString());
}
context.Response.Write(result);
数据转成json格式的字符串
数据转成json格式的字符串,只要转成json格式的字符串就行了
strReq显示的字符串是加密的吧,解密后再转换成json串
看着应该是做了url参数转义了。 先做一次Url解码转回来, 然后用&分割出参数键值对 最后执行序列化出来就是json了
使用newtonjson直接转换