導航:首頁 > 編程語言 > phphttppost請求

phphttppost請求

發布時間:2024-10-26 12:25:37

A. php怎樣用curl發送post請求

使用 PHP 中的 cURL 函數來發送 POST 請求是一種常見的網路數據交互方式。下面分步驟說明如何進行。

首先,初始化 cURL 會話,使用 `curl_init()` 函數。

設置請求方式為 POST,使用 `curl_setopt()` 函數,參數 `CURLOPT_POST`。

要發送 POST 數據,使用 `curl_setopt()` 函數設置 `CURLOPT_POSTFIELDS` 參數,提供要發送的數據。

設置請求頭。例如,添加自定義頭,使用 `curl_setopt()` 函數,參數 `CURLOPT_HTTPHEADER`。

要添加帶有用戶名和密碼的 Authorization 請求頭,首先需要進行 Base64 編碼。示例如下:

設置代理伺服器,使用 `curl_setopt()` 函數,參數 `CURLOPT_PROXY`。

為了將響應內容保存到變數,而非直接輸出,使用 `curl_setopt()` 函數設置 `CURLOPT_RETURNTRANSFER` 參數為 true。

關閉請求,使用 `curl_exec()` 函數執行 cURL 會話,隨後使用 `curl_close()` 關閉會話。

執行簡單 GET 請求與 POST 請求的步驟類似,只需調整 `CURLOPT_POST` 參數。

獲取響應頭信息,使用 `curl_getinfo()` 函數,參數為 `curlINFO_HEADER_OUT`。

若請求導致重定向,`curl_getinfo()` 函數返回的 `curlINFO_REDIRECT_URL` 參數將提供重定向後的地址。

要獲取 Set-Cookie 信息,執行請求後,可以將 `curl_exec()` 的結果存入變數,然後解析響應頭或使用 `curl_getinfo()` 的 `curlINFO_COOKIELIST` 參數。

總結,通過以上步驟,可以靈活地利用 PHP cURL 函數實現 POST 請求,包括設置請求參數、頭信息、代理、獲取響應內容等操作,適用於多種網路交互場景。

B. php怎麼響應客戶端發送http請求

http請求有get,post。
php發送http請求有三種方式[我所知道的有三種,有其他的告訴我]。
1. file_get_contents();詳情見:http://www.jb51.net/article/41833.htm
2. curl發送請求。
3. fsocket發送。
下面說使用curl發送。
首先環境需要配置好curl組件。
在windows中讓php支持curl比較簡單:
在php.ini中將extension=php_curl.dll前面的分號去掉,
有人說需要將php根目錄的libeay32.dll和ssleay32.dll需要拷貝到系統目錄下去。我實驗不拷貝也可以。
linux中,如果使用源碼安裝,需要在make 之前,./configure --with-curl=path,
其中,path是你的 libcurl庫的位置,比如你安裝libcurl庫之後,
path可能就是/usr/local/,libcurl可以是靜態庫,也可以是動態庫。
注意libcurl庫configure的時候,可以將一些不需要的功能去掉,
比如ssl , ldap等。在php configure的時候,會去檢查libcurl中某些功能是否被開啟,進而去相應地調整生成的php。

C. php面試題get和post的區別

1、Get 方法通過 URL 請求來傳遞用戶的數據,將表單內各欄位名稱與其內容,以成對的字元串連接,置於 action 屬性所指程序的 url 後,如http://www.domain.com/test.asp?name=51js&password=51js,數據都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;Post 方法通過 HTTP post 機制,將表單內各欄位名稱與其內容放置在 HTML 表頭(header)內一起傳送給伺服器端交由 action 屬性能所指的程序處理,該程序會通過標准輸入(stdin)方式,將表單的數據讀出並加以處理

2、 Get 方式需要使用 Request.QueryString 來取得變數的值;而 Post 方式通過 Request.Form 來訪問提交的內容

3、Get 方式傳輸的數據量非常小,一般限制在 2 KB 左右,但是執行效率卻比 Post 方法好;而 Post 方式傳遞的數據量相對較大,它是等待伺服器來讀取數據,不過也有位元組限制,這是為了避免對伺服器用大量數據進行惡意攻擊,根據微軟方面的說法,微軟對用 Request.Form() 可接收的最大數據有限制,IIS 4 中為 80 KB 位元組,IIS 5 中為 100 KB 位元組

建議:除非你肯定你提交的數據可以一次性提交,否則請盡量用 Post 方法

4、Get 方式提交數據,會帶來安全問題,比如一個登陸頁面,通過 Get 方式提交數據時,用戶名和密碼將出現在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這台機器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框

建議:出於安全性考慮,建議最好使用 Post 提交數據
***********************************
在B/S應用程序中,前台與後台的數據交互,都是通過HTML中Form表單完成的。Form提供了兩種數據傳輸的方式——get和post。雖然它們都是數據的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對數據產生嚴重的影響。雖然為了方便的得到變數值,Web容器已經屏蔽了二者的一些差異,但是了解二者的差異在以後的編程也會很有幫助的。
Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。
2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
6、Get是Form的默認方法。
*.Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。
*.Post傳輸的數據量大,可以達到2M,而Get方法由於受到URL長度的限制,只能傳遞大約1024位元組.
*.Post顧名思義,就是為了將數據傳送到伺服器段,Get就是為了從伺服器段取得數據.而Get之所以也能傳送數據,只是用來設計告訴伺服器,你到底需要什麼樣的數據.Post的信息作為http請求的內容,而Get是在Http頭部傳輸的。
網頁表單當中的get方式和post方式的區別
1、get方式可傳遞的數據量有限,大約是2K左右,而post在iis5當中則達到100k,一般人們可以默認post是無限制的;
2、get方式在提交帳號密碼等表單時不如post方式安全。在get提交表單以後瀏覽器的url會將你提交的表單參數全部顯示在地址欄當中,而且可以通過機器的緩存來直接查看到各項參數;而post方式則不會;
3、get方式在後台處理頁面用Request.QueryString接收各個參數;而post則用Request.Form獲取;
4、get方式會忽略<form action="a.asp?a=a"里邊的"a=a"這個參數;而post方式則不會

閱讀全文

與phphttppost請求相關的資料

熱點內容
lol全部命令 瀏覽:36
用什麼APP查指數 瀏覽:919
什麼是作品源碼 瀏覽:669
我的理想程序員該怎麼寫 瀏覽:840
英譯中國現代散文選pdf 瀏覽:446
裝飾設計模式java 瀏覽:21
linuxshell清屏命令 瀏覽:134
惠利app是什麼 瀏覽:779
游戲埠讀取伺服器失敗怎麼弄 瀏覽:878
linux修復mbr 瀏覽:128
磁碟格式化基本命令 瀏覽:578
程序員掉入異世界 瀏覽:954
andlua畫質助手源碼 瀏覽:577
winrar解壓格式怎麼看 瀏覽:147
qt編程入門pdf 瀏覽:599
php中是根據指針查的數據嗎 瀏覽:276
安卓手機驅動為什麼不能提取通用 瀏覽:708
轉行程序員失敗的人 瀏覽:728
延遲命令方塊 瀏覽:499
某視頻網站為什麼安卓可以投屏 瀏覽:651