我有一个如下所示的 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?
最佳答案
我的解决方案是:
public async Task TestHttpClient()
{
var client = new HttpClient();
var credentials = Encoding.ASCII.GetBytes("user:xxxxx");
var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentials));
client.DefaultRequestHeaders.Authorization = header;
String url = "http://my_url:port/write?db=myDb";
String content = "FieldName,host=M.233 value=52.666 timestamp";
StringContent stringContent = new StringContent(content);
var result = await client.PostAsync(url, stringContent);
}
关于c# - 如何将 curl 请求转换为 HttpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373878/