這已經被問了一百次,但似乎沒有一個對我有用。我有以下卷曲代碼:
curl --location --request POST 'https://endpoint/telemetry' \
--header 'x-ads-dev: akeyvalue' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"entityID": 2123,
"locationID": 33,
"dataPoints": [
{
"dateTime": "2020-08-03 23:05:00",
"reading": 0,
"flags": 0,
"quality": 0,
"ignore": true
},
{
"dateTime": "2020-09-27 03:10:00",
"reading": 0,
"flags": 0,
"quality": 0,
"ignore": true
}
]
}
]'
當我在郵遞員中運行它時,我從服務器得到的回應與我嘗試將它用于 restsharp 時不同。這是我剩下的清晰代碼:
try {
string url = "https://endpoint/";
var client = new RestClient(url);
client.AddDefaultHeader("x-ads-dev", "akeyvalue");
var request = new RestRequest("telemetry", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", datapoint, ParameterType.RequestBody);
var response = await client.PostAsync(request);
變數資料點的值為:
[
{
"entityID":2123,
"locationID":33,
"dataPoints":[
{
"dateTime":"2020-08-03 23:05:00",
"reading":0,
"flags":0,
"quality":0,
"ignore":true
},
{
"dateTime":"2020-09-27 03:10:00",
"reading":0,
"flags":0,
"quality":0,
"ignore":true
}
]
}
]
當我通過郵遞員使用 curl 代碼運行它時,服務器接受請求,但是當我通過 restsharp 運行它時,我收到錯誤的請求錯誤。
編輯代碼以匹配以下評論,因為這樣做并沒有解決我的問題。
uj5u.com熱心網友回復:
我很確定您使用定義的內容型別AddParameter是罪魁禍首。你有沒有像這樣測驗過:
request.AddParameter("application/json", datapoint, ParameterType.RequestBody);
或使用AddJsonBody
request.AddJsonBody(datapoint);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/439737.html
