我有向 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 → http://xxx/api/walk/5,因此我需要在执行 PostAsync 后获取此 Location 值。
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
正如我在文档中看到的,您需要访问包含在变量“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;
Location 应该返回一个 Uri 对象。
注意:在这里您必须小心,因为您正在进行异步调用,您必须考虑到在服务器响应之前您可能不会拥有该值,因此您可能应该使用“await”进行同步。
- 1 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消