【问题标题】:POST mime type using curl使用 curl 的 POST mime 类型
【发布时间】:2013-04-02 11:59:25
【问题描述】:

所以我尝试使用一个名为Sky Biometry 的api,用于人脸检测和人脸识别。该 api 接受 url 或 post 作为 MIME 类型。在这种情况下,我想直接将图片发布到 api,这是文档中所说的:

"注意:如果您想发布图像而不是指定 url,则对方法的请求必须形成为使用 POST 数据发送的 MIME 多部分消息。每个参数应指定为单独的表单数据块。”

我已经尝试四处寻找示例,但尚未找到任何示例,如果有人可以帮助新手,将不胜感激。

Sky Biometry Documentation

【问题讨论】:

  • 我假设这只能用 php 完成,是否可以在 java 中做到这一点?

标签: php post curl types mime


【解决方案1】:

多部分消息实际上是标准的 POST enctype="multipart/form-data" 请求。您可以使用简单的表单非常简单地生成它们,或者您可以使用 cURL(我怀疑您已经这样做了),如下所示:

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

cURL 将自动完成其余的工作(转换您的内容类型并对其进行 mime 输入)。

【讨论】:

【解决方案2】:

这是一个使用 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);

希望这对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2011-01-13
    • 2013-03-07
    • 2011-03-29
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多