C# 将 Json 传递给 HTTP Post 请求

用户3454910

我正在尝试将 Json 字符串作为 HttpWebRequest 的参数与 URL 一起传递。请求会很好地命中方法,但每次参数都为空。我试过很多这样的例子,但没有成功:How to send json data in POST request using C#

这是将被序列化并传递的示例对象

Amount amount = new Amount
{
    currencyCode = "EUR",
    amount = 1234
}
string JsonParameters = amount.ToJson();
var result = Methods.ExecuteHttpPostRequestWithJson("http://localhost:51581/Home/Test", JsonParameters);

Json 参数正确序列化为

{"currencyCode":"EUR","amount":1234}

这是我尝试创建的方法。我尝试了多种方法,但每次最终都为空。

这是将要调用的方法

public static string ExecuteHttpPostRequestWithJson(string URL, string Json)
    {
        string result = "";
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {;
            streamWriter.Write(Json);
            streamWriter.Flush();
            streamWriter.Close();
        }

        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }

        return result;
    }

这是正确命中的方法,但货币代码和金额的参数为空。

[HttpPost]
public JsonResult Test(string currencyCode, string amount)
{
    return Json(new
    {
        Test = "It worked"
    });
}
经济师

除了Nouman Bhatti在评论中建议的内容之外——定义服务中的数量类以及更新服务的 POST 方法签名以期望该对象——还使用[FromBody]属性

班级

new Amount
{
    currencyCode = "EUR",
    amount = 1234
}

新的 POST 方法签名

[HttpPost]
public JsonResult Test([FromBody]Amount amount)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将JSON传递到HTTP POST请求

Jmeter - 将特定的 JSON 响应动态传递给 HTTP 请求

如何使用Apache HTTP客户端将复杂参数传递给POST请求?

将参数传递给webmethod $ http post

如何将值传递给 post 请求的改造 url

将数据从POST API请求传递给lambda函数

将查询参数传递给 React Apollo POST 请求

通过 POST 请求将参数传递给 javascript 文件

将全身作为变量传递给POST请求

快速将 json 解码类型传递给 http 请求

将JSON字符串作为输入传递给带有Selenium的RESTAssured中POST请求正文的参数之一

将 JSON 嵌套对象传递给 Post() 方法 - C# WebAPI

Android Http 请求 POST JSON

将JSON请求一一传递给REST API

如何将 JSON 传递给 Django 中的 Ajax 请求?

Flask请求将熊猫传递给to_json与curl或Postman

如何将参数传递给Express post HTTP方法?

在 http post 请求 C# 中发送 JSON 数据

将JSON值传递到POST请求-节点

使用 HTTP Post(RESTful API)将请求从 React.JS 前端传递到 C# 后端(ASP.NET)

我应该如何在http post请求的请求有效负载中传递json数据

如何将Http请求中的JSON数据发送到JSON解析中的POST方法

使用 $.post 将 javascript 数组传递给 c# 数组/列表,而不将数据类型指定为 json

如何在Ionic 3上将URL参数(查询字符串)传递给HTTP POST请求

如何在 Flutter 中将 ArrayList 项传递给 http 请求(post)的正文?

如何在 Flutter 中将图像文件传递给 Http 请求(POST)的主体?

在java中发送JSON Post HTTP请求

从 WCF 获取 JSON HTTP POST 请求

从Android发送JSON HTTP POST请求