- 締切済み
フォーム以外からCGIにPOSTする方法
CGIプログラム(便宜的にPROGRAM_A)にデータを渡す方法はGETとPOSTがあるかと思います。 そこで、フォーム以外(perlプログラム(便宜的にPROGRAM_B))から、POSTを使用してPROGRAM_Aにデータを渡すことは可能でしょうか。 教えてください。 PROGRAM_B ---(POST)---> PROGRAM_A
- みんなの回答 (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);
自分でソケットを開いてHTTPプロトコルで投げればいいのです。 すぐに必要ですか?
補足
わかりやすいサイトや書籍を教えていただけると助かります。