POST URL, заканчивающийся cURL - PullRequest
0 голосов
/ 02 сентября 2011

когда мне нужно отправить запрос POST с помощью CURL, в полях POST, если они содержат строки с пробелами, должен ли я url_encode для строк или функция сделает это для меня?

что правильно?

CURLOPT_POSTFIELDS  => 'field=this%20is%20good'

или это

CURLOPT_POSTFIELDS  => 'field=this is good'

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

Спасибо

1 Ответ

1 голос
/ 03 сентября 2011

Вы не указали это, но я полагаю, вы используете PHP, верно?

Должен быть закодирован в соответствии с RFC 1738. Вы можете использовать функцию http_build_query (). Я использую, например:

$array = array('field' => 'this is good');
http_build_query($array, '', '&');

Вы также можете просто передать $ array в качестве опции (например, CURLOPT_POSTFIELDS => $array), но это создаст запрос multipart / form-data вместо «обычного» application / x-www-form-urlencoded.

PS: Никто из вас не прав, на самом деле :) Вы должны кодировать пробелы с +, как в RFC 1738, а не с% 20.

...