2016-07-26 7 views
1

Curl 요청을 처리하는 데 어려움을 겪고 있습니다. 이 코드의 목적은 API를 사용하여 파일을 diawi.com에 업로드하는 것입니다. 이것은 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; 
?> 

결과는 내가 가지고

1.1 (100)는 계속 HTTP/HTTP/1.1 200 OK 서버 : nginx를 콘텐츠 형식 : 응용 프로그램/JSON 전송 - 인코딩 : 연결 유지 달라집니다 :가 용납를 연결 청크 캐시 제어 인코딩하지 :

업로드 파일에는 캐시 날짜 : 2016년 7월 26일 (화) 그리니치 표준시 19시 40분 33초 엄격한-운송 및 보안 : 최대 사용 기간 = 15,768,000 { "U37Nq7ta3Q711AsbvYrODFfvTLoyNwY4XslCFI7oV0" "일을"} enter image description here

+0

안녕하세요, 회신에 늦어서 죄송합니다. 내 질문의 맨 아래에 테스트 용으로 사용할 토큰과 파일을 추가했습니다. –

+0

@ d.abyss 문서의 링크를 보내 주시겠습니까? –

+0

@ d.abyss 안녕하세요. 나는 내 대답을 업데이트했다. 지금 일하고있어. xD –