2013-04-10 67 views
0

所以我試圖使用一個名爲Sky Biometry的api,它被用於人臉檢測和麪部識別。 api可以接受url或post作爲MIME類型。在這種情況下,我想直接將圖片發佈到api,以下是文檔所述的內容:POST mime type using curl

「注意:如果您想要POST圖像而不是指定url,那麼對方法的請求必須形成爲一個使用POST數據發送的MIME多部分消息,每個參數應該被指定爲一個獨立的表單數據塊。

我試過四處尋找例子,但還沒有找到任何,如果有人可以幫助新手出來它將不勝感激。

Sky Biometry Documentation

+0

我是在假設這隻能用PHP來完成,是否有可能在java中做到這一點? – user2266621 2013-04-10 16:23:50

回答

0

多部分消息實際上是標準POST ENCTYPE = 「多部分/格式數據」 請求。你可以用一個簡單的形式很簡單,生成它們,或者您可以使用捲曲(我懷疑你已經這樣做)如下:

curl_setopt($channel, CURLOPT_POSTFIELDS, array("myfile" => "@/path/to/my/image.png")); 

捲曲會自動完成剩下的(轉換您的內容類型和mime-鍵入它)。

+0

任何人現在都可以找到它,但無法使其工作,請查看https://stackoverflow.com/a/29122849/1166029 - 此方法自PHP 5.5起棄用 – samson 2017-07-05 19:21:01

0

此使用curl張貼值的例子結構,

$value1 = 'DATA 1; 
$value2 = 'DATA 2'; 
$url = 'http://www.skybiometry.com/file/api/facedetection/example'; 
$fields = array(
         'mimetype' => urlencode($value1), 
         'mimetype2' => urlencode($value2) 
       ); 

//url-ify the data for the POST 
$fields_string = ''; 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

希望這可以幫助你。