Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема: cURL POST, не получается отправить запрос 
V
    Опции темы
diam
Дата 27.6.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 16



Здравствуйте.

У меня проблема с отправкой запроса методом POST при помощи cURL.
К серверу обращаюсь через прокси (без авторизации).
Сервер спрашивает login/пароль, общение по HTTPS. Кук нет.
В ответ получаю:
Цитата

<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
</BODY></HTML>


Код:
Код

$url = 'https://some.example.com/WEB_REFFER_XML';
$proxy = 'http://proxy.example.com:3128';
$userpwd = 'user:password';
$params = array(
    "param1" => "value1",
    "param2" => "value2",
    //...
);

function main()
{
    global $url;
    global $params;
    global $proxy;
    global $userpwd;

    // устанавливаю соединение
    $ch = curl_init($url);
    // устанавливаю параметры
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, prepareQuery($params));
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    // получаю результат
    $result = curl_exec($ch);
    curl_close($ch);

    var_dump($result);
}

/**
 * Подготовка запроса к отправке.
 */
prepareQuery = function($params)
{
    if(!$params) {
        return "";
    }
    $query = "";
    foreach ($queryParams as $param => $value) {
        if (is_array($value)) {
            foreach ($value as $subvalue) {
                $query .= urlencode($param) . '=' . urlencode($value) . '&';
            }
            continue;
        }
        $query .= $param . '=' . urlencode($value) . '&';
    }
    return $query;
}

main();

Может, я не все параметры указываю, что-то забыл? 
PM MAIL   Вверх
diam
Дата 28.6.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 16



Проблема решена. Неправильно формировал параметры запроса. 
PM MAIL   Вверх
diam
Дата 1.9.2006, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 16



Собственно говоря, это рабочий скрипт.
От моего ничем не отличается. У меня не работал по причине неправильно сформированных параметров (нужно было указать параметр is_act=1, чего я не сделал), т.е., по вине моей невнимательности.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.