2016-07-26 206 views
1

我努力讓我的Curl請求工作。代碼的目的是使用他們的API將文件上傳到diawi.com。這是我第一次嘗試使用curl,我不確定正確的語法。PHP Curl請求 - 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繼續HTTP/1.1 200 OK服務器:nginx內容類型:應用程序/ JSON傳輸編碼:分塊連接:保持活動有所不同:接受 - 編碼的Cache-Control:無緩存時間:星期二,2016年7月26日19時四十分33秒GMT嚴格,運輸和安全性:最大年齡= 15768000 { 「工作」: 「U37Nq7ta3Q711AsbvYrODFfvTLoyNwY4XslCFI7oV0」}文件上傳成功

enter image description here

+0

嘿,夥計,對不起,我遲遲不回覆!我已經添加了一個令牌和一個文件用於在我的問題底部進行測試。 –

+0

@ d.abyss您可以向我發送文件鏈接嗎? –

+0

@ d.abyss嗨,兄弟。我已經更新了我的答案。現在工作。 xD –