再次,我需要你的幫助。我的客戶希望使用REST服務器進行一些數據加密。我已經在Python中獲得了一個代碼片。 (我不知道Python,所以我會相信他的話)。我需要使它在PHP中工作。在PHP中爲REST轉換Python代碼
注:我使用的是Windows和XAMPP,所以如果考慮到這一點,我們將不勝感激。另外REST服務器不是真正的服務器,我不想公開這個。
我是使用cURL的新手,所以不知道我錯過了什麼使它工作。現在我有一個錯誤,指出:「無法解析主機:en.tty.is;沒有請求類型的數據記錄」。
這裏是Python代碼:
input = urllib.urlencode({‘plaintext’: ‘some secret information’})
cyphertext = urllib2.urlopen(‘https://en.tty.is/encrypt’, input).read()
這是我一直在嘗試在PHP和捲曲7.24.0實現:
$url ="https://en.tty.is/encrypt";
$data = json_encode(array('plaintext'=>$txt));
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_CAINFO, MY_CAINFO_PATH);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$chleadresult = curl_exec($ch);
$chleadapierr = curl_errno($ch);
$chleaderrmsg = curl_error($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if(!$chleadresult){
echo $chleaderrmsg;die;
}
許多欣賞任何幫助。謝謝!
我把你的cURL代碼替換了,我得到的錯誤相對相同:「file_get_contents(https://en.tty.is/encrypt):未能打開流:php_network_getaddresses:getaddrinfo失敗:請求的名稱是有效的,但沒有找到所請求類型的數據「,其中明確指出域名有效,但數據不是所請求的類型。我想這與標題中的內容類型有關。我不需要強制使用cURL,我只需要通過此服務器獲取加密數據。謝謝你的幫助。 – despina 2013-04-26 13:40:40
@despina,對不起,它應該是「內容」而不是「數據」(我從內存中寫入)。查看流選項文檔的新鏈接。 – 2013-04-26 14:09:29