如何在 .net (C#) 中处理来自 HttpListenerContext 的请求后响应一些表单参数
How to respond some form parameters after processing request from HttpListenerContext in .net (C# )
我正在使用一个 Httplistenr,我正在通过 HttpListenerContext 处理它的请求。
之前我只是发送一个 Ok
没有任何内容的 http 响应,现在我需要用几个参数来响应,比如 Field1 = A, Field2 = B
.
我已将 response.ContentType
设置为 application/x-www-form-urlencoded
,但我不知道如何将响应值添加到响应中。
我目前的方法是
private void ProcessRequest(HttpListenerContext context)
{
if (context.Request.Headers != null && context.Request.Headers.Count > 0)
{
StringBuilder sb = new StringBuilder();
sb.Append($"Request Headers {Environment.NewLine}");
..
}
if (context.Request.InputStream != null)
{
using (var body = context.Request.InputStream)
{
var encoding = context.Request.ContentEncoding;
using (var reader = new StreamReader(body, encoding))
{
var conentRecieved = reader.ReadToEnd();
..,
}
}
}
var response = context.Response;
response.ContentType = "application/x-www-form-urlencoded";
response.StatusCode = (int)HttpStatusCode.OK;
response.StatusDescription = "OK";
response.ContentLength64 = 0;
response.OutputStream.Close();
response.Close();
}
我知道如何通过设置各自的内容类型和设置内容
来发送json类型或简单文本
要使用 HttpListener 在响应 body 中发送字符串,您可以将字符串编码为 byte[]
并使用 response.OutputStream.Write()
和 content-length
header .或者只是用 System.IO.StreamWriter
开始写入它,它将在内部使用缓冲和 content-length
header,或者使用分块传输编码。
例如:
var response = context.Response;
response.ContentType = "application/x-www-form-urlencoded";
response.StatusCode = (int)HttpStatusCode.OK;
var responseString = "MyVariableOne=ValueOne&MyVariableTwo=ValueTwo";
var responseBody = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = responseBody.Length;
response.OutputStream.Write(responseBody, 0, responseBody.Length);
response.Close();
我正在使用一个 Httplistenr,我正在通过 HttpListenerContext 处理它的请求。
之前我只是发送一个 Ok
没有任何内容的 http 响应,现在我需要用几个参数来响应,比如 Field1 = A, Field2 = B
.
我已将 response.ContentType
设置为 application/x-www-form-urlencoded
,但我不知道如何将响应值添加到响应中。
我目前的方法是
private void ProcessRequest(HttpListenerContext context)
{
if (context.Request.Headers != null && context.Request.Headers.Count > 0)
{
StringBuilder sb = new StringBuilder();
sb.Append($"Request Headers {Environment.NewLine}");
..
}
if (context.Request.InputStream != null)
{
using (var body = context.Request.InputStream)
{
var encoding = context.Request.ContentEncoding;
using (var reader = new StreamReader(body, encoding))
{
var conentRecieved = reader.ReadToEnd();
..,
}
}
}
var response = context.Response;
response.ContentType = "application/x-www-form-urlencoded";
response.StatusCode = (int)HttpStatusCode.OK;
response.StatusDescription = "OK";
response.ContentLength64 = 0;
response.OutputStream.Close();
response.Close();
}
我知道如何通过设置各自的内容类型和设置内容
来发送json类型或简单文本要使用 HttpListener 在响应 body 中发送字符串,您可以将字符串编码为 byte[]
并使用 response.OutputStream.Write()
和 content-length
header .或者只是用 System.IO.StreamWriter
开始写入它,它将在内部使用缓冲和 content-length
header,或者使用分块传输编码。
例如:
var response = context.Response;
response.ContentType = "application/x-www-form-urlencoded";
response.StatusCode = (int)HttpStatusCode.OK;
var responseString = "MyVariableOne=ValueOne&MyVariableTwo=ValueTwo";
var responseBody = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = responseBody.Length;
response.OutputStream.Write(responseBody, 0, responseBody.Length);
response.Close();