Pythonスクリプトからのバイナリデータ文字列をWebサーバーに投稿し、PHPスクリプトがそれを取得して保存する必要があります。Python側のphpスクリプトのPOST部分でエコーしたものは何でも受け取るので、実際のPOSTは機能すると思います。ただし、23バイトを投稿し、strlen($ _ POST ['data'])は0のままです。データを取得するためのPHPスクリプトは次のようになります。
if (isset($_REQUEST["f"]) && $_REQUEST["f"]=="post_status") {
$fname = "status/".time().".bin";
if (file_exists($fname)) {
$fname = $fname."_".rand();
if (file_exists($fname)) {
$fname = $fname."_".rand();
}
}
echo strlen($_POST['data'])." SUCCESS!";
}
PythonPOSTスクリプトは次のようになります。
data = statusstr
host = HOST
func = "post_status"
url = "http://{0}{1}?f={2}".format(host,URI,func)
print url
r = urllib2.Request(url, data,{'Content-Type': 'application/octet-stream'})
r.get_method = lambda: 'PUT'
response = urllib2.urlopen(r)
print "RESPONSE " + response.read()
なぜ私のデータが通らないように見えるのですか、私は疑問に思っていますか?
ありがとうございました、