这是对接万里汇项目中用到的一个请求和响应,要求带请求头参数和响应头参数。是第一次遇到,所以做了这么一个笔记。方便以后需要,便于查找。并借助gpt平台,有了下面的示例,感谢网络,感谢平台! 在C#中,你可以通过 ASP.NET Core 中的 HttpContext
对象来获取请求头和请求参数。以下是一个示例代码:
一 接受请求头和请求参数
C#
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace YourNamespace
{
[ApiController]
[Route("api/[controller]")]
public class RequestController : ControllerBase
{
[HttpGet]
public ActionResult Get()
{
// 获取请求头
var headers = HttpContext.Request.Headers;
// 获取查询参数(GET 请求)
var queryParams = HttpContext.Request.Query;
// 获取表单数据(POST 请求)
var formData = HttpContext.Request.Form;
// 获取 JSON 数据(POST 请求)
//var jsonData = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
// 返回请求头和请求参数
return Ok(new
{
Headers = headers,
QueryParams = queryParams,
FormData = formData,
//JsonData = jsonData
});
}
}
}
在上面的示例代码中,RequestController
是一个控制器类,对应于 /api/request
路由。通过将请求发送到该路由,你可以通过 GET 请求获取查询参数,或者通过 POST 请求获取表单数据或 JSON 数据。你可以根据实际情况选择解析不同类型的数据。
C#
using System.Web.Mvc;
namespace YourNamespace.Controllers
{
public class RequestController : Controller
{
public ActionResult Index()
{
// 获取请求头信息
var headers = Request.Headers;
// 可以根据需要获取特定的请求头信息
var userAgent = Request.UserAgent;
var contentType = Request.ContentType;
// ...
// 处理请求并返回结果
return Content("Request Header Received");
}
}
}
二 C# 中设置响应头和响应参数
在 C# 中,你可以使用 ASP.NET Core 或 ASP.NET MVC 框架来编写响应头和响应参数。以下是一个示例代码,展示了如何使用 ASP.NET Core 和 ASP.NET MVC 分别编写响应头和响应参数。
ASP.NET Core 示例:
C#
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace YourNamespace.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ResponseController : ControllerBase
{
[HttpGet]
public ActionResult Get()
{
// 设置响应头
HttpContext.Response.Headers.Add("CustomHeader", "CustomHeaderValue");
// 返回响应参数
return Ok(new
{
Param1 = "Value1",
Param2 = "Value2"
});
}
}
}
ASP.NET MVC 示例:
C#
using System.Web.Mvc;
namespace YourNamespace.Controllers
{
public class ResponseController : Controller
{
public ActionResult Index()
{
// 设置响应头
Response.AddHeader("CustomHeader", "CustomHeaderValue");
// 返回响应参数
return Json(new
{
Param1 = "Value1",
Param2 = "Value2"
}, JsonRequestBehavior.AllowGet);
}
}
}
三测试代码
C#
[HttpPost]
public ActionResult notifyPayout(NotifyPayoutModel model)
{
var headers = Request.Headers;
Response.AddHeader("CustomHeader", "CustomHeaderValue");
Response.AddHeader("test", "aaaaa");
Response.AddHeader("bbb", "cccc");
var data = JsonConvert.SerializeObject(headers);
return Content(data);
}