asp.net - 如何发送post请求?

标签 asp.net c json web-services post

如何在C#中使用Web Post服务?我用 POSTMAN 做了测试,得到了响应数据,但在 .net 中我的响应是空的。它在 PostMan 中效果很好。问题是如何格式化Body Content并发送。

            string idop = "";
            List<ProductJSON> listProductsJSON = new List<ProductJSON>();
            List<List<string>> productJSON = new List<List<string>>();

            List<string> products = new List<string>();
            products.Add("4");
            products.Add("5");
            products.Add("30.2");
            products.Add("1");
            products.Add("0");
            products.Add("4");
            productJSON.Add(products);

using (var client = new HttpClient())
            {
                var res = client.PostAsync("http://xyz.cti.lat/sant2/webservices/edd.php",
                  new StringContent(JsonConvert.SerializeObject(
                    new {
                        a = "pCatlog",
                        cnal = "RED",
                        tpo = "2",
                        fpago = "DETO",
                        pgdo = "0",
                        rc = "13123",
                        local = "BACK",
                        localorg = "BACK",
                        raz = "PPPPPP",
                        dir_ruc = "name",
                        log = "CREAVIR",
                        not = "DETO2",
                        del = "0",
                        dir = "",
                        ubi = "",
                        refe = "",
                        prod = productJSON
                    }),
                    Encoding.UTF8, "application/json")));

                try
                {
                    res.Result.EnsureSuccessStatusCode();
                    var x = res;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

最佳答案

你能在 try block 中尝试这段代码吗?

if (res.IsCompleted)
{
    var result = res.Result;
    var response = result.Content.ReadAsStringAsync();
    var data = response.Result;
}

理想的情况是将其声明为异步方法并使用等待操作来获取结果,如下所示。

var res = await client.PostAsync(<url>, <string_content>);         
var result = await res.Content.ReadAsStringAsync();

关于asp.net - 如何发送post请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56589305/

相关文章:

c - C 中的高斯消元法

c - 这段打印 1 到 1000 的代码在 C 中如何工作?

asp.net - 当要复制的lob数据的插入长度超过配置的最大值65536时

c# - 我如何从中继器控件中获取最后一个记录值?

c# - 就性能而言,使用不必要的 using\imports 声明是否有任何意义

java - 在java中使用Gson解析JSON数组/对象

jquery $.post 第二个参数。 - json 还是查询字符串?

c# - .NET GridView - 你能只右对齐一列吗?

java - 不同编程语言之间的桥梁

json - 如何在 ng-options 中显示深度嵌套的 JSON 对象