2013-07-29 1 views
0

Я пытаюсь использовать WoT Dossier службу для преобразования досье в формате JSON, и в их FAQ, они показывают следующее Curl пример:Проводка файла с локон, но не зная ключа для POST

curl --data-binary @dossier.dat http://wot-dossier.appspot.com/service/dossier-to-json 

После нескольких часов царапания моей головы о том, что происходит не так, мне не повезло. Вот код, я использую (PHP), чтобы попытаться повторить команду:

$url = "http://wot-dossier.appspot.com/service/dossier-to-json"; 

$file = realpath('dossier_temp/' . $full_fn); 

echo $file; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/octet-stream")); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array("@$file")); 

$curl_res = curl_exec($ch); 

curl_close($ch); 

$json = json_decode($curl_res, true); 

var_dump() из JSON показывает NULL, но как это может быть? Есть ошибка в почтовом поле где-то?

Любая помощь будет оценена

ответ

1

не включают в себя массив в postfields, попробуйте это. кажется, что ваш пост просто должен быть сырым потоком данных.

$data = file_get_contents($file); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
+0

Если вы когда-либо находитесь по соседству, я куплю вам пиво. Приветствия. – Timr

Смежные вопросы