Fiddler 测试 API Post 传递 [Frombody] 类

2024-04-02

我有一个非常简单的 C# APIController,名为“TestController”,其 API 方法如下:

[HttpPost]
public string HelloWorld([FromBody] Testing t)
{
    return t.Name + " " + t.LastName;
}

Contact 只是一个如下所示的类:

public class Testing
{
    [Required]
    public string Name;
    [Required]
    public string LastName;
}

我的 APIRouter 看起来像这样:

config.Routes.MapHttpRoute(
     name: "TestApi",
     routeTemplate: "api/{controller}/{action}/{id}",
     defaults: new { id = RouteParameter.Optional }
);

问题1:
如何从 C# 客户端测试它?

对于#2,我尝试了以下代码:

private async Task TestAPI()
{
    var pairs = new List<KeyValuePair<string, string>> 
    {
       new KeyValuePair<string, string>("Name", "Happy"),
       new KeyValuePair<string, string>("LastName", "Developer")
    };

    var content = new FormUrlEncodedContent(pairs);

        var client = new HttpClient();                        
        client.DefaultRequestHeaders.Accept.Add(
             new MediaTypeWithQualityHeaderValue("application/json"));

        var result = await client.PostAsync( 
             new Uri("http://localhost:3471/api/test/helloworld", 
                    UriKind.Absolute), content);

        lblTestAPI.Text = result.ToString();
    }

问题2:
我如何从 Fiddler 测试这个?
似乎无法找到如何通过 UI 传递类。


对于问题 1: 我将从 .NET 客户端实现 POST,如下所示。 请注意,您将需要添加对以下程序集的引用: a) System.Net.Http b) System.Net.Http.Formatting

public static void Post(Testing testing)
    {
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost:3471/");

        // Add an Accept header for JSON format.
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        // Create the JSON formatter.
        MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();

        // Use the JSON formatter to create the content of the request body.
        HttpContent content = new ObjectContent<Testing>(testing, jsonFormatter);

        // Send the request.
        var resp = client.PostAsync("api/test/helloworld", content).Result;

    }

我还将重写控制器方法,如下所示:

[HttpPost]
public string HelloWorld(Testing t)  //NOTE: You don't need [FromBody] here
{
  return t.Name + " " + t.LastName;
}

对于问题 2: 在 Fiddler 中将下拉列表中的动词从 GET 更改为 POST 并放入 JSON 请求正文中对象的表示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fiddler 测试 API Post 传递 [Frombody] 类 的相关文章

随机推荐

  • PHP:帮助解码恶意代码[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 eval gzuncompress base64 decode eF5Tcffxd3L0CY5WjzcyNDG2NDc3MLGMV4 1d
  • 安装包时非零退出,仅 tidyverse

    我已经在 Ubuntu 上设置了托管 RStudio 并且已经加载了几个没有问题的软件包 包括 caret 和 lubridate 然而 当我尝试安装 tidyverse 时 我得到 gt install packages tidyvers
  • 设置与 Google 表单中的标签不同的值

    有没有办法使用 Google Forms Apps 脚本或 Google Sheets 公式来设置与 Google Forms 上的多项选择中的标签不同的值 我正在寻找类似于 html 的内容
  • 防止滚动 TVertScrollBox 时触发事件

    通常 当滚动 滚动框 的内容时 滚动框的子组件 例如 滚动框 不会触发任何事件函数 G 在本机应用程序中 但在 FireMonkey 中 如果 TVertScrollBox 包含像 TRectangle 这样的子元素 我想将其用作自定义菜单
  • 更改 rmarkdown 生成的 PDF 中的字体

    我正在使用 rmarkdown 生成报告 编织 PDF 时 title Untitled output pdf document I would like to specify the font to be used in creating
  • 如何在 vb.net 中使用 openfiledialog 打开文件?

    如何使用 openfiledialog 打开文件 下面是我的代码 Dim Fs As StreamReader With OpenFD FileName Title Open Text File InitialDirectory c Fil
  • 更改字符串字符时出现分段错误(核心转储)

    为什么更改字符串字符会导致分段错误 核心转储 char str string str 0 S segmentation fault core dumped 解决方案很简单 用以下方式声明你的字符串 char str string 您应该这样
  • AWS API Gateway 不存在“Access-Control-Allow-Origin”标头

    我遇到了 API 网关的问题 我已经浏览了 AWS 论坛上的所有其他答案 也浏览了他们的文档 但仍然没有任何乐趣 我正在尝试使用 AWS API 网关设置一个 API 该网关调用 Lambda 函数来读取 写入 DynamoDB 中的表 D
  • SSIS 中的别名参数

    我在 SSIS 中使用 OLE DB 命令 其 SQL 命令如下所示 UPDATE DBO CLIENT SET TimeZoneID DaylightSavingTime ModifiedBy MicrosPropertyID IsOff
  • Haskell 函子隐含定律

    类型分类百科全书 http www haskell org haskellwiki Typeclassopedia says 类似的论点还表明 任何满足第一定律 fmap id id 的 Functor 实例也将自动满足第二定律 实际上 这
  • 检测 Asp.net 上的浏览​​器关闭

    我想在注销时执行一些功能 如果用户直接关闭浏览器 则需要执行相同的功能 我们无法在页面卸载上执行此操作 因为我的网站中有 100 多个页面 因为这将在每个页面的重定向上起作用页 谢谢
  • 操作员 '??'不能应用于“System.DateTime”类型的操作数

    我收到以下错误 Operator cannot be applied to operands of type System DateTime foreach EndServReward r in reward if con State Co
  • R TwitteR 包授权错误

    我正在关注最新更新推特主页 https github com geoffjentry twitteR 我无法通过授权流程 library devtools install github twitteR username geoffjentr
  • php 中 eregi() 的替代方案 [重复]

    这个问题在这里已经有答案了 因此 我在邮件脚本中使用了 eregi 但最近 我收到该函数已弃用的错误 那么 替换以下代码的最简单方法是什么 if eregi A Z0 9 A Z0 9 A Z 2 4 trim POST email 任何帮
  • Pandas:如何创建年周变量?

    我有一个带有日期时间的数据框 dates pd date range 9 25 2010 periods 10 freq D df pd DataFrame col dates df col pd to datetime df col df
  • 连接无序线段

    我的算法生成一个 通常 数千条线段 全是二维 的列表 我需要将它们连接成大型折线 这些生成的折线可能是闭合的或开放的 但它们永远不会自相交 线段没有方向 即可能需要翻转线段才能将其连接到相邻线段 找到这些折线的极快方法是什么 我必须实时执行
  • 什么是可以轻松集成到现有应用程序的优秀 Ruby on Rails 论坛?

    什么是可以轻松集成到现有应用程序的优秀开源 RoR 3 论坛 可选功能 OpenID 支持 Haml SCSS 模板 支持表情符号 YouTube 图像等 我可能会对其进行很多更改 而且我对 Ruby 的了解仍然很弱 因此干净的 带注释的代
  • 如何反转 sed 输出?

    我正在阅读大约 500 个字符的行 我怎样才能让 sed 不用某些东西替换该字符串 而是用某些东西替换该行的其余部分 简而言之 我想删除指定字符串周围的所有文本 使用 awk 删除列不起作用 因为匹配的字符串前后有不确定数量的字符 有任何想
  • 如何将 JFreechart 添加到面板?

    我尝试寻找答案来使其正常工作 但没有成功 我快要失去理智了 所以这是我的问题 我最近下载了 JFreeChart 来创建图表并在我的 GUI 中实现它们 这是我想要插入图形的 GUI 和面板 以白色标记 报告1 http www freei
  • Fiddler 测试 API Post 传递 [Frombody] 类

    我有一个非常简单的 C APIController 名为 TestController 其 API 方法如下 HttpPost public string HelloWorld FromBody Testing t return t Nam