PHP Curl请求 - Diawi API

PHP Curl请求 - Diawi API

问题描述:

我努力让我的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

使用此源。

<?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 –