- PR -

POSTデータが受信できない

1
投稿者投稿内容
ryooku
会議室デビュー日: 2003/10/15
投稿数: 2
投稿日時: 2005-10-05 11:11
はじめまして。
PHPでシステム開発をしております。

PHPから別のサーバーへPOSTでデータを送信しようとしているのですが、
なぜか送信しているはずのデータが受側のサーバーに受信されていないのです。
ちなみにレスポンスコードは200となっており正常終了しています。

何が原因なのでしょうか?
よろしければご教授お願いします。

以下ソースコード
$post_data = "foo=". urlencode($foo). "&bar=" .urlencode($bar);
$sock = fsockopen($host, 80, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");
fputs($sock, "POST /~ryo/socket/test/send_post_data.php HTTP/1.0\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Host: $host\r\n");
fputs($sock, "User-Agent: PHP/".phpversion()."\r\n");
fputs($sock, "Content-type: application/x-www-url-encoded\r\n");
fputs($sock, "Content-length: " . strlen($post_data) . "\r\n");
fputs($sock, "\r\n");
fputs($sock, $post_data);
fputs($sock, "\r\n");
以下略
宣伝中止!
大ベテラン
会議室デビュー日: 2005/08/30
投稿数: 155
お住まい・勤務地: 東京に作業場所変更・・・
投稿日時: 2005-10-06 15:10
このソースは受信側ですか?
_________________
#「やらない」と「出来ない」を混同してはならない
コナン
ベテラン
会議室デビュー日: 2005/01/31
投稿数: 98
投稿日時: 2005-10-06 17:03
こんにちわ。

Content-typeを「x-www-form-urlencoded」にしたら受信できると思われます。
「x-www-url-encoded」はマイナーなContent-typeなのかもしれません。
ryooku
会議室デビュー日: 2003/10/15
投稿数: 2
投稿日時: 2005-10-07 08:45
宣伝中止!様、コナン様ご返答ありがとうございます。

このコードは送信側のものです。
受信側では$_POSTで受けとうろとしています。

>Content-typeを「x-www-form-urlencoded」にしたら受信できると思われます。
>「x-www-url-encoded」はマイナーなContent-typeなのかもしれません。

上記の通り試してみたのですが、結果は同じでした。

とりあえず、CURLライブラリを使うことにしたので、目的の動作は達成できました。
しかし、SSL経由では正しく動作しないのですけど

また、前出のコードで動かない理由にしっくりきませんが・・・。

ご返答いただいた皆様、ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)