2016-07-26 5 views
1

Я изо всех сил пытаюсь заставить мой запрос Curl работать. Целью кода является загрузка файла на diawi.com с использованием их API. Это моя первая попытка использования curl, я не уверен в правильном синтаксисе.PHP Curl Request - Diawi API

Вот мой код:

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_URL => 'https://upload.diawi.com/', 
    CURLOPT_HTTPHEADER => array(
     "cache-control: no-cache", 
     "content-type: multipart/form-data" 
    ), 
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2', 
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => array(
     token => 'token', 
     file => 'http://example.com/apps/myapp.ipa', 
     find_by_udid => 0, 
     wall_of_apps => 0, 
     callback_url => 'http://www.example.com/apps/diawi_response.php', 
     callback_email => '[email protected]' 
    ) 
)); 

$resp = curl_exec($curl); 
curl_close($curl); 
echo $resp; 

На данный момент ответ я получаю «нет файл загружен».

Вот пример запроса из документации:

$ curl https://upload.diawi.com/ -F token='TOKEN' \ 
-F [email protected] \ 
-F find_by_udid=0 \ 
-F wall_of_apps=1 \ 
-F password='installation password' \ 
-F comment='Comment on the build' \ 
-F callback_url='http://www.example.com/my-diawi-callback-url' \ 
-F callback_email='[email protected]' 

Любая помощь вы можете дать мне было бы весьма признателен.

Тест маркер: MrdS5g9MpZhKn8jlJNuANRlmPuSBkBxWX1LTIptn8p

Тестовый файл: http://defu.se/ESFileExplorer.apk

ответ

1

Используйте этот источник.

<?php 
    ini_set('display_errors', 1); 
    $url = "https://upload.diawi.com/"; 
    $filename = realpath('./ESFileExplorer.apk'); 
    if ($filename != '') 
    { 
     $headers = array("Content-Type: multipart/form-data"); // cURL headers for file uploading 
     $postfields = array(
      "token"    => 'YOUR-TOKEN', 
      "file"    => new CurlFile($filename), 
      "find_by_udid"  => 0, 
      "wall_of_apps"  => 1, 
      "callback_email" => '[email protected]' 
      ); 
     $ch = curl_init(); 
     $options = array(
      CURLOPT_URL => $url, 
      CURLOPT_HEADER => true, 
      CURLOPT_POST => 1, 
      CURLOPT_HTTPHEADER => $headers, 
      CURLOPT_POSTFIELDS => $postfields, 
      CURLOPT_USERAGENT => 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' 
     ); // cURL options 
     curl_setopt_array($ch, $options); 
     curl_exec($ch); 
     if(!curl_errno($ch)) 
     { 
      // echo $ch; 
      $info = curl_getinfo($ch); 
      if ($info['http_code'] == 200) 
       $errmsg = "File uploaded successfully"; 
      // print_r($info); 
     } 
     else 
     { 
      $errmsg = curl_error($ch); 
     } 
     curl_close($ch); 
    } 
    else 
    { 
     $errmsg = "Please select the file"; 
    } 
    echo $errmsg; 
?> 

Результат я получил

HTTP/1.1 100 Continue HTTP/1.1 200 OK Сервер: Nginx Content-Type: применение/JSON Transfer-Encoding: фрагментированное Подключение: Keep-Alive Варах: Accept- Кодирование не Cache-Control: нет кэша Дата: Tue, 26 июля 2016 19:40:33 GMT Strict-Transport-Security: макс возраста = 15768000 { "работа": "U37Nq7ta3Q711AsbvYrODFfvTLoyNwY4XslCFI7oV0"} Файл успешно загружен

enter image description here

+0

Эй, чувак, извините за задержку ответа! Я добавил маркер и файл для тестирования в нижней части моего вопроса. –

+0

@ d.abyss Можете ли вы отправить мне ссылку на документ? –

+0

@ d.abyss Привет, брат. Я обновил свой ответ. Работаю сейчас. xD –

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

  • Нет связанных вопросов^_^