1. PHP / Говнокод #19889

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    <?php
    /** тестовая отправка xmlrpc-запроса */
    
    $productId = 665;
    $msisdn = '79210000001';
    $user = 'myuser';
    $pass = 'mypassword';
    $url='http://localhost/';
    
    $request = xmlrpc_encode_request('startService', ['phone' => $msisdn, 'productId' => $productId]);
    
    $header[] = "Content-type: text/xml";
    $header[] = "Content-length: ".strlen($request) . "\r\n";
    $header[] = $request;
    
    echo "Запрос:\r\n";
    print_r($request);
    
    if ($curl = curl_init()) {
    	curl_setopt($curl, CURLOPT_URL, $url);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    	curl_setopt($curl, CURLOPT_HEADER, true);
    	curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    	curl_setopt($curl, CURLOPT_USERPWD, $user . ':' . $pass);
    
    	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST' );
    
    	$out = curl_exec($curl);
    }
    $response = xmlrpc_decode($out);

    А мы-то весь день гадем, почему тело запроса на сервер не поступает.

    Запостил: jonnywalker, 27 Апреля 2016

    Комментарии (20) RSS

    • curl_setopt($curl, CURLOPT_BODY, $request);

      угадал?
      Ответить
    • Чтобы тело поступало на сервер - его надо пиздить клавиатурой по лицу и хлестать ссаными тряпками. Проверенный метод.
      Ответить
    • if ($curl = curl_init()) {
      	curl_setopt($curl, CURLOPT_URL, $url);
      	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      	curl_setopt($curl, CURLOPT_HEADER, true);
      	curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
      	curl_setopt($curl, CURLOPT_USERPWD, $user . ':' . $pass);
       
      	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
      	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
      	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST' );
       
      	$out = curl_exec($curl);
      }

      Зачем вам рнр? Пишите сразу на си!
      Ответить
      • curl_setopt($curl, CURLOPT_USERPWD, $user . ':' . $pass);

        Ваще пушка
        Ответить
      • В PHP есть 100500 общепризнанных способов сделать запрос.

        There is more than one way to screw it up.
        Ответить
        • Так это баг или фича?
          Ответить
          • Сишная форма записи в рнр? А ты как думаешь?
            Ответить
            • Потому что в пыхе curl_* это модуль-обертка над АПИ сишной либы.
              Ответить
              • Так это баг или фича?
                Ответить
                • Это как банка сгухи в твоём очке - скучный, сухой, серый факт.
                  Ответить
                  • Пидарас, ты почему не на работе - пацанов обслуживать?
                    Ответить
                    • почему ты беседуешь сам собой в мой ветке?
                      Ответить
                      • >в мой ветке
                        Твоя у тебя разве что в жопе, петух.
                        Ответить
                        • Пидарок Шамиль повредил твой мозг. Ты хуйню несешь.
                          Ответить
                          • > Пидарок Шамиль
                            Ну вот, опять запятую пропустил и Шамиля оскорбил ни за что...
                            Ответить
                            • понапридумывают тут запятых. Хуй разберешься где их ставить
                              Ответить
                              • > Хуй разберешься
                                С запятой это читалось бы более оптимистично.
                                Ответить
                                • С запятой в каком предложении?
                                  Ответить
                                  • Во втором. Именно между двумя процитированными мною словами.
                                    Ответить

    Добавить комментарий