• 締切済み

フォーム以外からCGIにPOSTする方法

CGIプログラム(便宜的にPROGRAM_A)にデータを渡す方法はGETとPOSTがあるかと思います。 そこで、フォーム以外(perlプログラム(便宜的にPROGRAM_B))から、POSTを使用してPROGRAM_Aにデータを渡すことは可能でしょうか。 教えてください。 PROGRAM_B ---(POST)---> PROGRAM_A

みんなの回答

noname#25358
noname#25358
回答No.2

 TCP/IPとかHTTPのプロトコル関係の書籍とか見るとたいがい書いてあったりするんですけどね。  自信なかったんで#1の回答には書きませんでしたが、下記のソースだと、$host、$path、$query に文字列をセットすると、最終的に @ret に値が返ってくるはずです。  ただしバグがあったらあしからず。 --------------------------------○ $host = 'www.provider.com'; $path = '/~account/index.htm'; $query = 'a=123&q=abc'; use Socket; $address = inet_aton($host) || die "ERROR"; $sockaddress = sockaddr_in(80, $address); socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die "ERROR"; connect( SOCK, $sockaddress ) || die "ERROR"; binmode(SOCK); select(SOCK); $| = 1; select(STDOUT); print SOCK "POST $path HTTP/1.0\r\n"; print SOCK "Host: $host\r\n"; print SOCK "Connection: close\r\n"; print SOCK "Content-Length: " . length($query) . "\r\n"; print SOCK "\r\n"; print SOCK "$query"; @ret = <SOCK>; close(SOCK);

noname#25358
noname#25358
回答No.1

 自分でソケットを開いてHTTPプロトコルで投げればいいのです。  すぐに必要ですか?

nika982001
質問者

補足

わかりやすいサイトや書籍を教えていただけると助かります。

関連するQ&A

専門家に質問してみよう