1

sendhubAPIを使用しています。

https://www.sendhub.com/developer/

このエラーが発生します。

'application / x-www-form-urlencoded'で示された形式には、使用可能な逆シリアル化メソッドがありませんでした。formatsあなたとあなたのシリアライザーをチェックしてcontent_typesください。

私が使用しているコードは次のとおりです。

    $ch = curl_init();

                curl_setopt($ch, CURLOPT_URL,$url);
                curl_setopt($ch, CURLOPT_HEADER, "Content-Type: application/json");
                curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

                if(LOCAL_MODE){
                  curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
                  curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
                  curl_setopt($ch, CURLOPT_PROXY, FALSE);
                 }

                curl_setopt($ch, CURLOPT_POST, 1);

                $data = '{
                   "contacts": [
                      1111
                   ],
                   "text": "Testing"
                }';

                curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
                echo $result=curl_exec ($ch);
                echo curl_error($ch);

誰かがこの問題を解決する方法を教えてもらえますか?

ありがとうございました。

4

2 に答える 2

5

Content-Typeが正しく送信されていないようです。

「「application/x-www-form-urlencoded」で示された形式には、使用可能な逆シリアル化方法がありませんでした。」というメッセージが表示されます。サーバーがコンテンツタイプを「application/json」ではなく「application/x-www-form-urlencoded」として読み取っていることを示します。

次のようにコンテンツタイプを設定する必要があります。

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

(CURLOPT_HEADERがCURLOPT_HTTPHEADERになっていることに注意してください)

URL(ユーザー名とapikeyを含む)が正しく、提供された連絡先IDが存在する場合、これは機能するはずです。

于 2012-09-13T05:01:55.240 に答える
0
// The code
$vs_user = $t_user->getAppConfig()->get('sms_user');
$vs_api_key = $t_user->getAppConfig()->get('sms_api_key');
$vs_url = "https://api.sendhub.com/v1/messages/?username={$vs_user}&api_key={$vs_api_key}";
$o_ch = curl_init();
$ps_message = stripslashes(rawurldecode($ps_message));
$ps_message = trim(preg_replace("!\n+!","\\"."n", $ps_message));
curl_setopt($o_ch, CURLOPT_URL, $vs_url);
curl_setopt($o_ch, CURLOPT_HEADER, false);
curl_setopt($o_ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($o_ch, CURLOPT_POSTFIELDS, '{"contacts":['.$vn_sendhub_contact_id.'],"text":"'.$ps_message.'"}');
curl_setopt($o_ch, CURLOPT_RETURNTRANSFER, 1);
$vs_return = curl_exec($o_ch);
$va_return = json_decode($vs_return);
curl_close($o_ch); 

私が使用している私のphpを確認してください

于 2014-04-16T11:37:53.933 に答える