Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从响应httpclient获取位置标头_C#_Rest_Api_Httpclient - Fatal编程技术网

C# 从响应httpclient获取位置标头

C# 从响应httpclient获取位置标头,c#,rest,api,httpclient,C#,Rest,Api,Httpclient,我的当前代码正在向REST API发出POST请求: string url = "https://xxxx.azurewebsites.net/api/walk/"; string sContentType = "application/json"; JObject jsonObject = new JObject(); jsonObject.Add("Duration", walkInfo.Duration); jsonObject.Add("WalkDate", walkInfo.Walk

我的当前代码正在向REST API发出POST请求:

string url = "https://xxxx.azurewebsites.net/api/walk/";
string sContentType = "application/json";

JObject jsonObject = new JObject();
jsonObject.Add("Duration", walkInfo.Duration);
jsonObject.Add("WalkDate", walkInfo.WalkDate);


HttpClient oHttpClient = new HttpClient();
var oTaskPostAsync = oHttpClient.PostAsync(url, new StringContent(jsonObject.ToString(), Encoding.UTF8, sContentType));

它工作得很好,我的问题是,我不知道如何从API的响应中获取位置头。当我通过邮递员测试需求时,我可以看到位置标题设置为location→因此我需要在执行PostAsync后获取此位置值。

正如我在文档中看到的,您需要访问变量“oTaskPostAsync”中包含的结果

因此,要获取位置,您应该执行以下操作:

string url = "https://xxxx.azurewebsites.net/api/walk/";
string sContentType = "application/json";

JObject jsonObject = new JObject();
jsonObject.Add("Duration", walkInfo.Duration);
jsonObject.Add("WalkDate", walkInfo.WalkDate);


HttpClient oHttpClient = new HttpClient();
var oTaskPostAsync = oHttpClient.PostAsync(url, new StringContent(jsonObject.ToString(), Encoding.UTF8, sContentType));
var location = oTaskPostAsync.Headers.Location;
位置应该返回一个Uri对象


注意:在这里您必须小心,因为您正在进行异步调用,您必须考虑到,在服务器响应之前,您可能无法获得该值,因此您可能应该使用“wait”用于执行同步。

正如我在文档中看到的,您需要访问变量“oTaskPostAsync”中包含的结果

因此,要获取位置,您应该执行以下操作:

string url = "https://xxxx.azurewebsites.net/api/walk/";
string sContentType = "application/json";

JObject jsonObject = new JObject();
jsonObject.Add("Duration", walkInfo.Duration);
jsonObject.Add("WalkDate", walkInfo.WalkDate);


HttpClient oHttpClient = new HttpClient();
var oTaskPostAsync = oHttpClient.PostAsync(url, new StringContent(jsonObject.ToString(), Encoding.UTF8, sContentType));
var location = oTaskPostAsync.Headers.Location;
位置应该返回一个Uri对象


注意:在这里您必须小心,因为您正在进行异步调用,您必须考虑到,在服务器响应之前,您可能无法获得该值,因此您可能应该使用“wait”来进行同步。

我会将所有
异步/wait
部分转换为粗体。或者整个音符。也可以写成
var location=oTaskPostAsync.Headers.GetValues(“location”).FirstOrDefault()
。我会将所有
async/await
部分转换为粗体。或者整个音符。也可以写成
var location=oTaskPostAsync.Headers.GetValues(“location”).FirstOrDefault()