我有向 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 關注
- 207 瀏覽
添加回答
舉報
0/150
提交
取消