Как правильно конвертировать пост из PHP и CURL в пост клиента C # HTTP для API groupon

Я пытался преобразовать следующий код

<?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 {

}
}

работать с HTTP-клиентом в C #, используя вместо этого класс содержимого, закодированный в форме URL, как показано ниже $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}

Я предполагаю, что это как-то связано с JsonConvert.SerializeObject(country.ci_lineitem_ids) от Ньютонсофт Джсон Пакет, который я использую для преобразования массива строк в массив в кодировке json, как показано в коде PHP.

Кто-нибудь может помочь с некоторыми идеями относительно того, почему это не работает так, как ожидалось, так как сейчас у меня нет идей, попробовав несколько разных способов сделать это до этого?

2

Решение

Если это не опечатка, вы забыли s в конце третьего параметра вашего кода на C #.

ci_lineitem_ids в вашем php

ci_lineitem_id находится в c #

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]