2015-05-18 3 views
2

У кого-нибудь есть опыт работы с API-интерфейсом Google v2 для перевода HTML с использованием PHP CURL на метод POST?Google API-переводчик с использованием метода CURL post

Я пробовал несколько кодов и библиотек от github, но ни один из них не был издан для меня. То, что я нашел, - это методы GET.

Из-за ограничений на разбор данных по GET или строке запроса, я не могу отправить большие данные HTML для перевода.

Я ищу решение/фрагменты кода, которые могут переводить данные из буфера с помощью с помощью CURL

ответ

6

Вот мое решение

$handle = curl_init(); 

if (FALSE === $handle) 
    throw new Exception('failed to initialize'); 

curl_setopt($handle, CURLOPT_URL,'https://www.googleapis.com/language/translate/v2'); 
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($handle, CURLOPT_POSTFIELDS, array('key'=> 'apikey', 'q' => 'Testing message', 'source' => 'en', 'target' => 'cs')); 
curl_setopt($handle,CURLOPT_HTTPHEADER,array('X-HTTP-Method-Override: GET')); 
$response = curl_exec($handle); 

Вы также можете использовать POST для вызова API, если вы хотите отправить еще данных в одном запросе. Параметр q в корпусе POST должен быть менее 5K символов. Чтобы использовать POST, вы должны использовать заголовок X-HTTP-Method-Override, чтобы сообщить API-интерфейсу Translate API для обработки запроса как GET (используйте X-HTTP-Method-Override: GET).

Google Translate API Documentation

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