您好,不知道為什么,但是當我嘗試使用 RestSharp 進行 POST 時,轉換資料時出現了問題。
我正在嘗試使用 baselinker 發布資料:
API:

但是當我嘗試通過 RestSharp 使用代碼做同樣的事情時:
public async Task xdAsync()
{
var client = new RestClient("https://api.baselinker.com/connector.php");
string token = "my API token here";
RestRequest request = new RestRequest();
request.AddParameter("token", token);
request.AddParameter("method", "addProductVariant");
request.AddParameter("application/json","{\"storage_id\":\"bl_1\",\"product_id\":\"67564668\",\"variant_id\":1055421650,\"name\":\"42\",\"quantity\":5,\"price_brutto\":599.99,\"ean\":29193201490}",ParameterType.RequestBody);
var response = await client.PostAsync(request);
Console.WriteLine(response.Content);
}
它給我的只是這樣的回應:
{"status":"ERROR","error_code":"ERROR_STORAGE_ID","error_message":"Invalid storage identifier provided."}
我認為轉換字串或其他東西有錯誤。我嘗試了很多沒有 slahes 的更改,嘗試使用@但仍然找不到解決方案,也許有人對 RestSharp 或 smoething 有類似的問題?
另外,當我嘗試另一種方法時
//wyslanie requesta:
var url = "https://reqbin.com/echo/post/json";
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Accept = "application/x-www-form-urlencoded";
httpRequest.Headers["Authorization"] = "My API KEY";
httpRequest.ContentType = "application/json";
var data = @"{
""addProductVariant"":{ ""storage_id"":""bl_1"",
""product_id"":""67564668"",
""variant_id"":""10525421650"",
""name"":""42"",
""quantity"":""10"",
""price_brutto"":""599.99"",
""ean"":""29193201490"" }
} ";
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream()))
{
streamWriter.Write(data);
}
var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Console.WriteLine(result.ToString());
}
Console.WriteLine(httpResponse.StatusCode);
httpRequest我通過這樣的方式得到reposne :
{"success":"true"}
OK
我對這種方法沒有完全回應,但它有效。
uj5u.com熱心網友回復:
你必須添加內容型別
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer " token);
.... your code
var body="{\"storage_id\":\"bl_1\",\"product_id\":\"67564668\",\"variant_id\":1055421650,\"name\":\"42\",\"quantity\":5,\"price_brutto\":599.99,\"ean\":29193201490}";
request.AddParameter("application/json",body,ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var json=response.Content;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494481.html
上一篇:回呼的順序是如何安排的?
下一篇:如何在后臺運行異步協程?
