我見過curl()用作POST的一種方式 - 還有其他更廣泛使用或更好的方法嗎?使用PHP發佈到Web API的最佳方式是什麼?
2
A
回答
5
看到incredibly huge amount of settings you have with cURL,可能沒有理由使用其他任何東西。
1
AFAIK,cURL是PHP推薦到另一個API的推薦方式。可能還有其他的方法,但cURL內置於PHP來處理這種情況,所以爲什麼不使用它?
2
從PHP 4.3和PHP 5開始,您還可以使用stream_context_create()
與fopen()
/file_get_contents()
聯合進行POST請求。
完整的POST示例是here。
至於哪個更好,我從來沒有見過一個PHP安裝帶有捲曲支持沒有編譯。但看到它needs an external library和流上下文方法不對,一個可以認爲後者是更好的選擇用於便攜式應用。
CURL仍然是更靈活的工具,並且有更多的選擇和功能。但是,如果只需要POST請求,我會使用內置的方式。
1
我最近回答了similar question,提供了一個基本的POST'able實現既file_get_contents()
和捲曲的和一些基準應該幫助你決定。
已經提到cURL需要libcurl擴展,並且在某些服務器上file_get_contents()
可能無法請求遠程文件allow_url_fopen
設置爲Off
。
您必須選擇哪一個最適合您,我通常使用以下函數,如果cURL不可用,則返回file_get_contents()
。
function Request($url, $post = null)
{
if (extension_loaded('curl') === true)
{
$curl = curl_init($url);
if (is_resource($curl) === true)
{
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
if (isset($post) === true)
{
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, (is_array($post) === true) ? http_build_query($post, '', '&') : $post);
}
$result = curl_exec($curl);
}
curl_close($curl);
}
else
{
$http = array
(
'method' => 'GET',
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
);
if (isset($post) === true)
{
$http['method'] = 'POST';
$http['header'] = 'Content-Type: application/x-www-form-urlencoded';
$http['content'] = (is_array($post) === true) ? http_build_query($post, '', '&') : $post;
}
$result = @file_get_contents($url, false, stream_context_create(array('http' => $http)));
}
return $result;
}
相關問題
- 1. 從django應用發佈到Twitter的最佳方式是什麼?
- 2. 通過PHP使用Twitter API的最佳方式是什麼?
- 3. 將Excel文件傳遞到WEB API Web服務的最佳方式是什麼?
- 4. 什麼是使用Delphi的Web數據庫的最佳方式?
- 5. 用戶名密碼使用API的最佳方式是什麼?
- 6. 在Grails中使用Web服務的最佳方式是什麼?
- 7. 在python中使用web服務的最佳方式是什麼?
- 8. 分享點的最佳分佈式開發方法是什麼
- 9. 向卡夫卡發佈消息的最佳方式是什麼?
- 10. 發佈as3類和包的最佳方式是什麼?
- 11. 在Facebook上發佈RSS Feed的最佳方式是什麼?
- 12. 調試AJAX到PHP調用的最佳方式是什麼?
- 13. 提供API請求的最佳方式是什麼?
- 14. 在Web開發中編寫CSS使用合同的最佳方式是什麼?
- 15. 什麼是安全發佈網站發佈內容的最佳方式?
- 16. 什麼是使用PHP獲取URL目錄的最佳方式?
- 17. 通過jQuery發送PHP數組的最佳方式是什麼?
- 18. 使用vim進行Cocoa開發的最佳方式是什麼?
- 19. 什麼是ImageMagick的最佳PHP API?
- 20. 什麼是我的WCF服務庫發佈到EC2的最佳方式
- 21. 用NSRect信息發佈NSNotification的最佳方法是什麼?
- 22. 最佳方式發佈
- 23. 推出Web應用程序的最佳方式是什麼?
- 24. 「投票」的最佳方式是什麼?
- 25. 使用php和gmail發送電子郵件的最佳方式是什麼?
- 26. 使用PHP和Visual Studio進行本地開發的最佳方式是什麼?
- 27. 什麼是從PHP輸出新行到shell的最佳方式?
- 28. 什麼是以編程方式使用Gmail的最佳方式?
- 29. 鍵入()的最佳方式是什麼?
- 30. 將參數發送到UIViewController的最佳方式是什麼?