C# HttpClient同步请求

C# HttpClient同步请求,c#,httpclient,C#,Httpclient,我正在尝试发送一个对象作为httprequest的一部分。这些值是从Specflow表中填充的 public class Request { public Dictionary<string, dynamic> RequestParameters = new Dictionary<string, dynamic>(); public void setR

我正在尝试发送一个对象作为httprequest的一部分。这些值是从Specflow表中填充的

public class Request
{
    public Dictionary<string, dynamic> RequestParameters = 
                                                    new Dictionary<string, dynamic>();
    public void setRequestParameters(Table table)
    {

        foreach (var row in table.Rows)
        {
            try
            {
                RequestParameters.Add(row[0], row[1]);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Request request = new Request();
request.setRequestParameters(table);
var result = client.PostAsJsonAsync<Request>(_address.ToString(), request).Result;

使用请求。请求参数

var result = client.PostAsJsonAsync<Dictionary<string, dynamic>>(_address.ToString(), request.RequestParameters).Result;
var result=client.postsjsonasync(_address.ToString(),request.RequestParameters).result;

使用请求。请求参数

var result = client.PostAsJsonAsync<Dictionary<string, dynamic>>(_address.ToString(), request.RequestParameters).Result;
var result=client.postsjsonasync(_address.ToString(),request.RequestParameters).result;

如果您将request.RequestParameters而不是request本身传递给PostAsJsonAsync,该怎么办?你看到有什么不同吗?你使用
dynamic
而不是
object
的原因是什么?@Yuval:计划是采用不同的键,值和值可以是任何数据类型。但是,刚刚实现的Specflow将所有表值作为字符串传递,因此此解决方案不起作用。e、 g.假设我有以下值| FieldKey | FieldValue | | InitialAmount | 1000.00 | | | Currency |“GBP”|您需要事先解析出这些值。如果您将request.RequestParameters而不是request本身传递给PostsJSONASync会怎么样?你看到有什么不同吗?你使用
dynamic
而不是
object
的原因是什么?@Yuval:计划是采用不同的键,值和值可以是任何数据类型。但是,刚刚实现的Specflow将所有表值作为字符串传递,因此此解决方案不起作用。e、 g.假设我有以下值| FieldKey | FieldValue | InitialAmount | 1000.00 | Currency |“GBP”|您需要在之前解析出这些值。现在我收到了错误4“System.Net.Http.HttpClient”不包含“PostAsJsonAsync”的定义和“System.Net.Http.HttpClientExtensions.PostAsJsonAsync”的最佳扩展方法重载(System.Net.Http.HttpClient,string,T)'有一些无效参数错误5参数3:无法从'System.Collections.Generic.Dictionary'转换为'Go.RequestBuilders.Request'C:\AcceptanceTestSteps\ServiceCallSteps。cs@DesertRose您需要:PostAsJsonAsync(…)相反?@Ram:谢谢你的解决方案。现在我得到了这个错误错误4“System.Net.Http.HttpClient”不包含“PostAsJsonAsync”的定义和“System.Net.Http.HttpClientExtensions.PostAsJsonAsync”的最佳扩展方法重载(System.Net.Http.HttpClient,string,T)'有一些无效参数错误5参数3:无法从'System.Collections.Generic.Dictionary'转换为'Go.RequestBuilders.Request'C:\AcceptanceTestSteps\ServiceCallSteps。cs@DesertRose你需要:postsjsonasync(…)吗?@Ram:谢谢你的解答。