首页 > 解决方案 > HttpClient Post请求未在C#中发送post参数

问题描述

我正在我的控制台应用程序中发送一个发布请求,但它似乎无法发送发布参数。这是我的代码

{
    string pass_url = "https://staging.fooddesk.be/api/v1/add_new_partner_pws";
    string postString = "[{\n\"product_name\": \"kip absrert\",\n\"producer_name\": \"Imperial Meat Products\",\n\"producer_art_num\": \"123\",\n\"supplier_name\": \"Vagro\",\n\"supplier_art_num\": \"12345\",\n\"ean_code\": \"5411153011327\",\n\"partner_art_nbr\": \"12345\"\n}]\"";
    var multipartContent = new MultipartFormDataContent();
    multipartContent.Add(new StringContent("pws_data" ) , postString) ;
    Uri requestUri = new Uri(pass_url);
    using (var objClint = new System.Net.Http.HttpClient())
    {
        objClint.DefaultRequestHeaders.Add("X-API-KEY", "ABCD");
        objClint.DefaultRequestHeaders.Add("X-COMP-KEY", "XYZ");
        System.Net.Http.HttpResponseMessage response = objClint.PostAsync(requestUri, multipartContent).Result;
        Console.WriteLine(response);
        if (response.IsSuccessStatusCode)
        {
            string json = response.Content.ReadAsStringAsync().Result;
            Console.WriteLine(json);
        }
    }
}

我在第 4 行遇到异常。请告诉我应该如何在 http 客户端发布请求中发送发布数据。提前致谢。

标签: c#.netwinformsapihttpclient

解决方案


我相信你在第 4 行混淆了你的论点。

查看文档以了解用法。

尝试

multipartContent.Add(new StringContent(postString) , "pws_data") ;

此外,帖子字符串在 ] 之后的末尾有一个额外的引号。删除它应该会有所帮助。

[{“product_name”:“kip absrert”,“producer_name”:“Imperial Meat Products”,“producer_art_num”:“123”,“supplier_name”:“Vagro”,“supplier_art_num”:“12345”,“ean_code”:“ 5411153011327", "partner_art_nbr": "12345" }]"


推荐阅读