问题遇到的现象和发生背景
目前我的winfrom调用js的时候不支持json格式字符串转换这个方法,我只能在后端进行转换
问题相关代码,请勿粘贴截图
我想要把字符串的数据转换为json格式的字符串,只有这个格式的数据第三方才能识别。
var JsonData = JSON.stringify(req);//这个无法识别 winfrom调用的时候会报错。
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);
运行结果及报错内容
下图就是的在winfrom调用然后提示的错误,这个错误是因为这个 json的转换识别不了,
var JsonData = JSON.stringify(req);//这个无法识别 winfrom调用的时候会报错。
所以我要通过后端来转。
我的解答思路和尝试过的方法
通过c#后端进行转换
我想要达到的结果
字符串的数据转换为json格式的字符串