1

同じサーバーに 2 つのサイトがあります。

api.mysite.com john.mysite.com

私の API サイトには、POST された json 配列を受け入れるサービスがあります。私の john.mysite.com サイトでは、サービスを呼び出して、次を使用して投稿しています。

 $info['id'] ="oo_".uniqid();
 $info['version'] ="5";

 $url = "http://api.mysite.com/services/addclient";
 $posted_fields = json_encode($info);

   $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   $result = curl_exec($ch);
   echo $result;

これが呼び出されると、Web サービスに何も投稿されません。私はそのコードに入り、 $_POST をダンプしましたが、それは空です。curl が POST 経由でデータを送信しないのはなぜですか?

助けてくれてありがとう!

4

2 に答える 2

5

1 つの問題はjson_encode、データをフォーム エンコードするのではなく、データを ing していることです。

もう 1 つは、$info初期化されていない可能性があることです。

もう 1 つは、$postfields9 行目のタイプミスです。

試す:

$info['id'] ="oo_".uniqid();
$info['version'] ="5";

$url = "http://api.mysite.com/services/addclient";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($info));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
echo $result;
于 2012-08-22T04:18:44.207 に答える
1

9行目のタイプミス

$postfields

する必要があります

$posted_fields
于 2012-08-22T04:17:45.510 に答える