.net http post接口返回json格式数据:
protected void Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{
StringBuilder sb = new StringBuilder();
string result = string.Empty;
int code=0;
string msg= string.Empty;
Response.Buffer = true;
Response.ContentType = "text/plain";
Response.ContentEncoding.GetBytes("utf-8");
try
{
Stream stream = Request.InputStream;
string resStr = GetStr(stream);//获取传递过来的参数字符串
string sign = GetValue("sign", resStr);//获取参数值
code=1;
msg=sign;
}catch (Exception ex)
{
code=-1;
msg="接口异常";
}
sb.Append("{\"code\":" + code + ",\"msg\":\"" + msg + "\"}").ToString();
Response.End();
}
}
public string GetStr(Stream stream)
{
StringBuilder sb = new StringBuilder();
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = stream.Read(buffer, 0, 1024)) > 0)
{
sb.Append(Server.UrlDecode(Encoding.UTF8.GetString(buffer, 0, count)));
}
stream.Flush();
stream.Close();
stream.Dispose();
return sb.ToString();
}
public string GetValue(string typeName,string str)
{
string value = string.Empty;
string[] arr = null;
if (str.ToString().IndexOf("&") != -1)
{
arr = str.ToString().Split('&');
}
else
{
arr = str.Split(' ');
}
if (arr != null && arr.Length > 0)
{
for (var i = 0; i < arr.Length; i++)
{
int isBreak = 0;
string[] arrChild = arr[i].ToString().Split('=');
if (arrChild != null && arrChild.Length > 0)
{
for (var j = 0; j < arrChild.Length; j++)
{
if (arrChild[0].ToString() == typeName)
{
value = arrChild[1].ToString();
isBreak = 1;
break;
}
}
}
if (isBreak == 1)
{
break;
}
}
}
return value;
}
这篇博客介绍了如何在ASP.NET中实现一个HTTP POST接口,该接口用于返回JSON格式的数据。具体包括构建JSON字符串的方法,以及从请求流中读取数据和解析参数的实用函数。
1491

被折叠的 条评论
为什么被折叠?



