【发布时间】:2017-04-12 15:32:22
【问题描述】:
我有一个如下所示的 curl 请求:
curl -i -XPOST 'http://my_url:port/write?db=myDb' -u user:xxxxx --data-binary 'FieldName,host=M.233 value=52.666 timestamp'
我正在尝试使用 HttpClient 发布此请求。我不确定我应该如何称呼它。这是我试图做的:
public async void TestHttpClient()
{
var client = new HttpClient();
var credentials = Encoding.ASCII.GetBytes("user:xxxxx");
var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentials));
client.DefaultRequestHeaders.Authorization = header;
client.BaseAddress = new Uri("http://my_url:port/write?db=myDb");
var result = await client.PostAsync(..);
}
我应该为 PostAsync() 编写哪些参数?
如何将--data-binary和FieldName,host=M.233 value=52.666 timestamp从curl转换为HttpClient?
【问题讨论】:
-
为什么不直接设置
Credentials属性而不是尝试构造身份验证标头? -
我是 C# 和 HttpClient 的新手,所以这是我在互联网上找到的,并试图建立自己的寻找其他问题和示例并试图了解它的工作原理以及正确的方法转换我的 curl 请求。因此,这只是我的尝试,我愿意接受所有建议以找到最佳解决方案。
标签: c# .net curl dotnet-httpclient asynchttpclient