簡體   English   中英

CURL錯誤發布文件

[英]CURL Errors POSTing File

我正在嘗試通過PHP中的Curl來訪問Census Geocoding API。 這是我的代碼(的精簡版):

$post = array('benchmark' => 'Public_AR_CENSUS2010', 'addressFile'=>'@C:\TestData.csv');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://geocoding.geo.census.gov/geocoder/locations/addressbatch/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);

echo($result);
curl_close ($ch);

這導致從API返回錯誤:

"From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 10.4.1 400 Bad Request. The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."

但是,如果我從命令行調用Curl,則效果很好...

curl --form addressFile=@"C:\TestData.csv" --form benchmark=PUBLIC_AR_CENSUS2010 http://geocoding.geo.census.gov/geocoder/locations/addressbatch

知道這里出了什么問題嗎?

您可能使用的是PHP版本5.6,在這種情況下, @功能已被棄用並默認關閉。 仍然可以通過顯式curl_setopt設置啟用它:

curl_setopt($curl_handle, CURLOPT_SAFE_UPLOAD, false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM