作者buganini (霸格尼尼)
看板PHP
標題Re: 用header送出post表單
時間Thu Feb 12 01:37:37 2009
※ 引述《costbook (Sissy's mate)》之銘言:
我想從AT&T的web TTS系統取得wav檔案,
(對方的cgi會回應一個wav檔案)
這是錯誤訊息:
HTTP/1.1 400 Bad Request Date: Wed, 11 Feb 2009 17:03:09
GMT Server: Apache/2.0.52 (CentOS) Content-Length: 326
Connection: close Content-Type: text/html;
charset=iso-8859-1
Bad Request
Your browser sent a request that this server could not
understand.
Apache/2.0.52 (CentOS) Server at
192.20.225.55/tts/cgi-bin/nph-talk Port 80
我修正程式了,紅字的部份
$fp = fsockopen("
192.20.225.55"
,80, $errno, $errstr);
if (!$fp){
echo "----->".$errstr."<-----";
die("$errstr ($errno)\n");
}else{
$data = "txt=".$_GET['txt'];
$out="POST
/tts/cgi-bin/nph-talk HTTP/1.
1\r\n";
$out.="Host:
http://192.20.225.55\r\n";
$out.="Content-type: application/x-www-post\r\n";
$out.="Content-length: " . strlen($data) . "\r\n";
$out.="Accept: */*\r\n";
$out.="\r\n".$data."\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.92.156
→ tka :會不會太硬, 這裡不能用 curl 嗎? 02/11 23:34
→ ybite :有出現任何錯誤訊息嗎? 02/12 00:07
推 buganini :fsockopen不用網址吧 給ip就好 網只是寫在POST後面 02/12 00:22
→ buganini :Host裡面要寫http:// 吧? 不確定 02/12 00:23
→ buganini :跟cgi什麼的完全沒有關係 還不都是HTTP 02/12 00:25
→ buganini :另外curl的確比較好用 02/12 00:27
推 buganini :fsockopen跟HTTP是不同層的東西 02/12 00:35
※ 編輯: costbook 來自: 203.68.92.156 (02/12 01:07)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.231.23
→ buganini :黃色的地方我不確定 不過我現在記憶體不夠開browser 02/12 01:38
→ buganini :暫時沒辦法查... 02/12 01:38
→ buganini :另外Host裡面最好寫他原本的FQDN 如果他有作 02/12 01:39
→ buganini :name-based virtual host會有影響 02/12 01:39
→ buganini :content-type好像也不對 忘記了.. 02/12 01:42
→ buganini :而且應該不只是nphtalk而已吧 應該有個.cgi之類的 02/12 01:44
推 costbook :cgi的程式名稱一直查不到,該網站的form也沒有寫出來 02/12 03:29
→ buganini :沒有就沒有吧action怎樣寫就照樣 可能是index吧 02/12 04:41