我尝试了几种不同的方法,都无法获取pipelineId来post(receive 400),代码如下:
{
client.BaseAddress = new Uri(_serviceConfig.DataGapsBaseUrl);
var request = new HttpRequestMessage(HttpMethod.Post, "/piper/jobs");
var jsonContent = new StringContent(JsonConvert.SerializeObject(new
{
pipelineId = _serviceConfig.DataPipelineId
}), Encoding.UTF8, "application/json");
request.Content = jsonContent;
var token = await GetToken();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.ToString());
var result = await client.SendAsync(request);
var json = JsonConvert.DeserializeObject<JToken>(result.Content.ReadAsStringAsync().Result);
var jobId = json["id"].ToString();
return jobId;
}
}
当我使用Postman与上面相同的操作时,我得到200个状态和结果:
3条答案
按热度按时间qyyhg6bp1#
因为你使用的是async await,所以在任何地方都使用它,而且这种语法更常见
yyyllmsg2#
对于初学者:
也使用await更改以下内容以防止线程锁定
请注意,如果您的客户端是单例,并且您正在从异步上下文设置身份验证,则它可能会被另一个调用覆盖,要么重新创建客户端,要么在HttpRequestMessage上设置授权:
6tqwzwtp3#
对不起,朋友们,我的错,我需要发送这个:
{“pipelineId”:“zxxzxzxzxz18”,“input”:{“Batch_Id”:9999}}
需要弄清楚如何处理双引号,它修复了这个问题。