楚河之界 2022-07-13 13:58 采纳率: 100%
浏览 51
已结题

Asp.Net WebRequest Get请求如何将参数放入信息体body中

Asp.Net WebRequest Get请求如何将参数放入信息体body中,如下图Fiddler抓包所示。

img

直接get请求,调用request.GetRequestStream()时会出错

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-07-13 14:00
    关注

    可以使用反射来设置ContentBodyNotAllowed实现,示例代码如下

    using System.Net;
    using System.IO;
    using System.Reflection;
    namespace Test.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult test() {
                var request = WebRequest.Create("http://www.w3dev.cn");
                request.ContentType = "application/json";
                request.Method = "GET";
                request.ServicePoint.Expect100Continue = false;//取消Expect:100-continue请求头,要不服务器没有正确处理会报错,如IIS。远程服务器返回错误: (417) Expectation Failed。
                var type = request.GetType();
                var currentMethod = type.GetProperty("CurrentMethod", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(request);
                var methodType = currentMethod.GetType();
                methodType.GetField("ContentBodyNotAllowed", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(currentMethod, false);
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    streamWriter.Write("{fid:123}");
                }
                var response = (HttpWebResponse)request.GetResponse();
                return Content("");
            }
    }
    
    

    代码来源:https://stackoverflow.com/questions/43421126/how-to-use-httpclient-to-send-content-in-body-of-get-request

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月22日
  • 已采纳回答 7月14日
  • 专家修改了标签 7月13日
  • 创建了问题 7月13日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系