我試着使用形式的URL編碼下面的代碼如何正確地從PHP和捲曲後轉換爲C#HTTP客戶端後爲團購API
<?php
// requires PHP cURL http://no.php.net/curl
$datatopost = array (
"supplier_id" => "1",
"token" => "xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT",
"ci_lineitem_ids" => json_encode (array (54553919, 54553920)),
);
$ch = curl_init ("https://scm.commerceinterface.com/api/v4/mark_exported");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
if($response) {
$response_json = json_decode($response);
if($response_json->success == true) {
//Successfully marked as exported (only items which are not already marked exported
} else {
}
}
與C#中的HTTP客戶端工作的轉換如下內容類代替$datatopost
陣列在PHP
FormUrlEncodedContent markExportedContent = new FormUrlEncodedContent(new[] {
new KeyValuePair<string,string>("supplier_id",country.supplier_id),
new KeyValuePair<string, string>("token",country.token),
new KeyValuePair<string, string>("ci_lineitem_id", JsonConvert.SerializeObject(country.ci_lineitem_ids))
});
,然後使用一個HTTP客戶端發佈此的API,但是我得到以下響應
{"reason": "Missing Parameters (ci_lineitem_ids).", "reason_code": 400, "success": false}
我認爲它與我使用的Newtonsoft Json包中的JsonConvert.SerializeObject(country.ci_lineitem_ids)
有關,它將字符串數組轉換爲json編碼數組,如PHP代碼中所示。
任何人都能夠與一些想法,以幫助,爲什麼這是不工作的期望,因爲我全力以赴在現在這個嘗試過多種不同的方式這個人之前做到這一點的想法?
你忘了 「S」 的'ci_lineitem_id' – Crowcoder