【发布时间】:2013-02-15 06:29:07
【问题描述】:
我正在尝试访问返回 jpeg 图像的 Web 服务。它在 URL## Heading ## 中需要两个变量 time_sent 和 user_id。
这是我的代码:
$ch = curl_init();
$options = array(
CURLOPT_URL => 'www.example.com/service/?time_sent=time&user_id=user',
CURLOPT_HTTPHEADER => array('Authorization-Token:' . $api_key, 'Content-type: image/jpeg'),
CURLOPT_ENCODING => "",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPGET => true,
CURLOPT_CONNECTTIMEOUT => 60,
CURLOPT_TIMEOUT => 60
);
}
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
if(!curl_errno($ch)){
curl_close($ch);
$img = imagecreatefromstring($response);
imagejpeg($img);
imagedestroy($img);
}
else{
curl_close($ch);
return curl_error($ch);
}
这是我的输出:
ÿØÿàJFIFÿþ>创建者:gd-jpeg v1.0(使用 IJG JPEG v80),默认 质量ÿÛC $。 ",#(7),01444'9=82<.342> 2!!2222222222222222222222222222222222222222222222222ÿÀÈ•"ÿÄ
ÿĵ}!1AQa"q2'¡#B±ÁRÑð$3br,
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–~~™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÄÆÇÈÉÊÒÓÔÕÖרÙÚáâãää÷æçèéêñòó>õööøùùúÿ
ÖÜ›æ©lüAqoÕÙ«(¾æçîÔEUºSäˆæŸâ¿ò¼Õº'¤¨®Ž¬µåÙ¾]Õ¥i¬ÜÙºì—å_á¨äÑÓk3|ÕËx·^¢ujþ‹Å~»ä—ø¿Ú¬ Ýy[ûA?º”cÊ8™òîÿj~?Öí©vî¦lÚû«Qšqí1šŠ‰±E2¡4H•õm«÷k–ø†ÒÞø¢ÊÍÓ÷®êêtiâK®_/Þ¬]7^+ó6+Ä© ÷·W$yyKŸÅÌe$B$Ø‹M¹e··i–²µmQ–gŠÙÕ]k*Ù5=YÒßÍÜÎßuj£b¹½ÒY®.õyÚÒÆ•Ÿø–¦¶ø_¬N-ʲ(þõïxfÓF²‹÷éyltö@ªrVð‡ ,N~{ÈùwXðãØM·gûß5bM¦²¯ÿe^ãâû+ifw ªª¿7ûÕæšŒVêÿ#n¨æ÷¹#ÊqO§ÿµP2íêµÐÏ2ðµ›-»V„Jizvê±5¿Ë÷j©ù~SAŸ("í}Õ,Ëòn¦V½SLÉ䪊`Coq-¼©,mµ –¶ŸWûz'™þµWkµXiÑJÈô´¹TÕbæÊæÞ(¦'DºÍVô;xµ$µ··\
谁能告诉我我做错了什么?
【问题讨论】:
-
var $result 的定义在哪里?
-
Content-type标头由响应发送,请求需要Accept标头。检查stackoverflow.com/questions/5661596/… -
你做错了什么?好吧,对于初学者来说,您没有设置 CURLOPT_BINARYTRANSFER,并且给定输出,您可能没有在对客户端的响应中设置 mime 类型。是否有理由使用 GD 将响应转换为 jpeg(当它已经是一个时)
-
@symcbean,imagejpeg 产生我的输出。因为我使用的是returntransfer,所以不需要BINARYTRANSFER。我不认为我需要哑剧类型。这是下面提供的,但我有多个标题,所以我必须找到解决方法。
标签: php image image-processing curl binary-data