[PHP-users 27533] Re: トラックバック送受信のサンプルコードについて
tak
tak @ pokerag.jp
2005年 11月 17日 (木) 17:30:43 JST
takです。
> fputs($sock, "POST ".$tburl." HTTP/1.1\r\n");
> fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
> fputs($sock, "$data\r\n");
トラバの仕様は詳しくないため他にお任せするとして、
上記ソースだけ見ると、HTTP POSTリクエストに文法エラーがあります。
※上記のソースだと、タイムアウトまでrecv(fgets)待ちになるか、
400 Bad Request を受信するかのいずれかでしょう。
(文法エラー内容)
1.Hostヘッダが無い。
⇒ 通信先のURLからホスト名を抜き出して
"Host: [ホスト名]\r\n"のヘッダを追加。
2.Content-Lengthヘッダが無い。
⇒ $dataの長さをヘッダ値として、
"Content-Length: [データ長]\r\n"のヘッダを追加。
3.最終ヘッダの終端がCRLF2個になっていない。
⇒ 上記ソースで言う所の、Content-Typeヘッダの終端を\r\n\r\nにする。
おまけとして、データ終端($dataの後)のCRLFは不要かも。
PHP-users メーリングリストの案内