0

API ドキュメントには、wp.newPost が新しい投稿 ID を返すことが明確に記載されていますが、約 40% の確率で false の応答が返されますが、HTTP 応答コードは 100 です。投稿はいずれの方法でも Wordpress に正常に公開されます。.

$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $this->getXMLRPCURL());
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);

// Encode htaccess credentials if they're set
$htaccess_credentials = $this->getHtaccessCredentials();
if ($htaccess_credentials) {
  curl_setopt($ch, CURLOPT_USERPWD, $htaccess_credentials->toString());
}

$results = curl_exec($ch); // <<-- RETURNS FALSE HERE.
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Returns 100
curl_close($ch);
return $results;

サンプルの $request 文字列を投稿できてうれしいですが、その部分はうまく機能しているようです。誰かがこれに遭遇したことがあるかどうか疑問に思っていましたか?hereに遭遇したようですが、解決策はほとんどありません。

4

1 に答える 1

0

おいおい。タイムアウト。当たり前。誰かが CURL タイムアウトを 1 に設定しました。それにもかかわらず、タイムアウトが設定されていなくても完全な応答を受信しないことがあります。デフォルトのソケット タイムアウトが開始されている可能性があります。それにもかかわらず、(やや重い) 回避策があります。

良い1日を。

于 2013-06-26T23:49:59.660 に答える