サポート » 使い方全般 » HTTP status codeが何ならばPING送信が成功しますか

  • 解決済 jiluro

    (@jiluro)


    SmartUpdatePingerを入れて100件あまりのPING送信を設定しております。

    しかしSmartUpdatePingerのログを見るとエラーばかりだし、そもそも20件しかログの記録にさえ載っておりません。そのうち成功と書かれてあるのはトピックエクスチェンジとブログピープルのたった2件・・・。

    VBAでPINGサーバ死んでないか以前全リストでチェックをかけたことあるのですが、ほとんどがレスポンスを返してきたので死んではなさそうなのに、全然送れません。
    共用サーバだから程度は高くはないのは理解できますが、あまりにも少な過ぎて困っております。

    大多数のエラーメッセが

    transport error – HTTP status code was not 200

    となっております。
    また、Yahooの場合には、
    transport error – could not open socket: 138130306

    というメッセです。

    status codeを200でない受け入れられる数値にしてSmartUpdatePingerで送信するにはどうしたらよいものでしょうか。

    また、Yahooのエラーへの対策はどうしたらできるでしょうか。

    何卒宜しくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    jiluroさん、こんにちは。

    まず1点勘違いされているようなのが、status code についてです。
    これはリクエストする側から送るものではなく、リクエストに対してのどのような処理状態となったかの応答としてリクエスト先から返されるコードです。(代表的なのは、存在しないページへアクセスしたときに表示される404エラーですね。一覧はこちら

    で、Smart Update Pingerですが、最新版と思われる2.0ではWordPress本体に同梱されているwp-includes/class-IXR.phpに記述されているclass IXR_Clientを介して、更新通知のリクエストを行っています。
    このクラスのqueryメソッドを追えば、どこで失敗しているかが読みとれてきます。

    transport error - HTTP status code was not 200

    は、サーバへの接続はできているものの、レスポンスヘッダーの1行目に200の文字が見あたらないため、正常な応答ではないと判断されています。

    transport error - could not open socket: 138130306

    は、どうやらサーバへの接続自体が失敗しているようですね。

    前者のエラーは、まずclass IXR_Clientの

    var $debug = false;

    var $debug = true;

    として、行っているリクエストを表示してみて、適切なリクエストとなっているかを検証してみるところから、はじめて見るとよいかと思います。

    後者については、そもそもサーバへの接続に失敗しているようなので、設定・仕様などを再確認してみるべきかと思います。

    トピック投稿者 jiluro

    (@jiluro)

    ありがとうございます!

    > 前者のエラーは、まずclass IXR_Clientの
    >
    > var $debug = false;
    >
    > を
    >
    > var $debug = true;
    >
    > として、行っているリクエストを表示してみて、適切なリクエストとなっているかを検証してみるところから、
    > はじめて見るとよいかと思います。

    なるほど、そうすればチェックが可能なのですね。ありがたいです。
    一点うかがいたいのですが、

    「wp-includes/class-IXR.php」
    のファイルの、
    「var $debug = false;」

    「var $debug = true;」

    に記述変更してFTPアップし、その上でPING送信を試してみて、その結果、SmartUpdatePingerの画面のログエリアに何と書かれてあるかをまず見てみる、という理解でよろしかったでしょうか?
    よろしければいったんやってみて、どんなログ記述がなされているかご報告したく思っております。

    モデレーター jim912

    (@jim912)

    jiluroさん、こんにちは。

    var $debug = true;

    と設定いただくと、ログエリアにではなく、PING送信時の画面上にリクエスト内容が表示されるはずです。

    それを手動で送信してみるなどして、レスポンスヘッダーを確認すればある程度原因がわかるのではないかと思います。

    P.S.
    投稿時に引用するならば、「b-quote」、コードなどを記述する場合は「code」を使うと読みやすくなりますよ。

    トピック投稿者 jiluro

    (@jiluro)

    アドバイスどうもありがとうございます。

    と設定いただくと、ログエリアにではなく、PING送信時の画面上にリクエスト内容が表示されるはずです。

    なるほど、送信時に出るのですね。

    それを手動で送信してみるなどして、レスポンスヘッダーを確認すればある程度原因がわかるのではないかと思います。

    手動でレスポンスヘッダーですね。調べてみます。

    P.S.
    投稿時に引用するならば、「b-quote」、コードなどを記述する場合は「code」を使うと読みやすくなりますよ。

    なるほどそうやってやるのですね。ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「HTTP status codeが何ならばPING送信が成功しますか」には新たに返信することはできません。