㈠ post 提交的參數是怎麼傳遞給web伺服器的,求解啊
POST方式將各個表單欄位元素及其數據作為HTTP消息的實體內容發送給WEB伺服器,傳送的數據量要比使用GET方式傳送的數據量大得多。
㈡ 怎麼用java程序以post方式發送表單參數給伺服器
POST方式發送請求示例:
Stringfullurl=url;
//打開連接
URLConnectionconn=newURL(fullurl).openConnection();
//設置通用的請求屬性
conn.setRequestProperty("accept","*/*");
conn.setRequestProperty("connection","Keep-Alive");
conn.setRequestProperty("user-agent","Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/42.0.2311.90Safari/537.36");
//發送POST請求必須設置下面兩行
conn.setDoInput(true);
conn.setDoOutput(true);
try(
//獲取URLConnection對象對應的輸出流
PrintWriterout=newPrintWriter(conn.getOutputStream());){
out.print(parm);//發送請求參數(key1=value1&key2=value2)
out.flush();//flush輸出流的緩沖
}catch(Exceptione){}
//獲取響應頭欄位
Map<String,List<String>>map=conn.getHeaderFields();
//根據輸入流讀取響應數據
InputStreamis=conn.getInputStream();
僅供參考。
㈢ 在地址欄中如何以Post提交數據
<script>
function goto(form)
{
var name=form.username.value;
var pwd=form.password.value;
form.action = 'index.asp?username='+name+'&password='+pwd;
form.submit();
}
</script>
<form method="post" name="login" id="login">
用戶名:<input type="text" name="username" id="username" class="put" /><br />
密碼:<input type="text" name="password" id="password" class="put" /><br />
<p style="padding-left:54px"> <input name="提交" type="submit" class="btn" value="登錄" onclick="javascript:goto(document.login)" /></p>
</form>
用js把post轉成get方式,然後到index.asp頁面接收傳過去的參數就可以了!
建議用FORM方法提交數據!
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的默認方法。
總結起來:get方式:以URL字串本身傳遞數據參數,在伺服器端可以從'QUERY_STRING'這個變數中直接讀取,效率較高,但缺乏安全性,也無法來處理復雜的數據(只能是字元串,比如在servlet/jsp中就無法處理發揮java的比如vector之類的功能);
post方式:就傳輸方式講參數會被打包在數據報中傳輸,從CONTENT_LENGTH這個環境變數中讀取,便於傳送較大一些的數據,同時因為不暴露數據在瀏覽器的地址欄中,安全性相對較高,但這樣的處理效率會受到影響。
㈣ 如何使用JSON格式 POST數據到伺服器
1.JSON數據格式x0dx0aa)以最簡單的形式,您可以使用以下JSON來表示名稱/值對:x0dx0a{「姓」:「布雷特」}x0dx0aB)可以創建包含多個名稱/值對的記錄,例如:x0dx0a{「FiestNeX」:「布雷特」,「LaSTNED」:「McCurkLin」,「email」:「布雷特@ NeWistalist.com」}x0dx0ac)可以創建一個值數組x0dx0a{「人」):x0dx0a{「FiestNeX」:「布雷特」,「LaSTNED」:「McCurkLin」,「email」:「布雷特@ NeWistalist.com」,x0dx0a{「FiestNeX」:「傑森」、「ListNeNe」:「Hunter」、「email」:「傑森@ servlet。com」}x0dx0a] ]x0dx0ad)當然,可以使用相同的語法來表示多個值(每個值包含多個記錄):x0dx0a{「程序員」):x0dx0a{「FiestNeX」:「布雷特」,「LaSTNED」:「McCurkLin」,「email」:「布雷特@ NeWistalist.com」,x0dx0a{「FiestNeX」:「傑森」、「ListNeNe」:「Hunter」、「email」:「傑森@ servlet。com」}x0dx0a]x0dx0a「作者」:x0dx0a{姓〉:「艾薩克」、「姓氏」:「阿西莫夫」、「流派」:「科幻小說」,x0dx0a{「第一名字」:「TAD」、「姓氏」:「威廉姆斯」、「流派」:「幻想」}x0dx0a]x0dx0a「音樂家」:x0dx0a{「姓」:「埃里克」、「姓氏」:「克萊普頓」、「樂器」:「吉他」}x0dx0a]x0dx0a}x0dx0a請注意,在不同的主要條目(程序員、作者和音樂家)之間,記錄中的實際名稱/值對可能是不同的。JSON是完全動態的,允許在JSON結構的中間表示數據的方式。x0dx0a2。在JavaScript中使用JSONx0dx0aJSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數據不需要任何特殊的API或工具包。x0dx0a2.1將JSON數據分配給變數x0dx0a例如,您可以創建一個新的JavaScript變數,並將其直接分配給JSON格式的數據字元串。x0dx0aVaR人=x0dx0a{「程序員」):x0dx0a{「FiestNeX」:「布雷特」,「LaSTNED」:「McCurkLin」,「email」:「布雷特@ NeWistalist.com」,x0dx0a{「FiestNeX」:「傑森」、「ListNeNe」:「Hunter」、「email」:「傑森@ servlet。com」}x0dx0a]x0dx0a「作者」:x0dx0a{姓〉:「艾薩克」、「姓氏」:「阿西莫夫」、「流派」:「科幻小說」,x0dx0a{「第一名字」:「TAD」、「姓氏」:「威廉姆斯」、「流派」:「幻想」}x0dx0a]x0dx0a「音樂家」:x0dx0a{「姓」:「埃里克」、「姓氏」:「克萊普頓」、「樂器」:「吉他」}x0dx0a]x0dx0a}x0dx0a2.2訪問數據x0dx0a將數組放入JavaScript變數後,可以很容易地訪問它。實際上,只使用點符號來表示數組元素。所以,如果你想訪問程序員列表的第一個條目,你只需要在JavaScript中使用下面的代碼:x0dx0a人。程序員(0)。x0dx0a注意,數組的索引從零開始。x0dx0a2.3修改JSON數據x0dx0a正如數據被訪問一樣,數據也可以以同樣的方式修改:x0dx0a人。音樂家[ 1 ]。姓氏=「Rachmaninov」;x0dx0a2.4轉換後串x0dx0aA)在JavaScript,這種轉換也非常簡單。x0dx0aString NejjStangeTeX= Posi.TjsString();x0dx0aB)可以將任何JavaScript對象轉換為JSON文本。而不是處理最初使用JSON字元串來分配值的變數。為了轉換名為MyObjor的對象,我們只需要執行相同的命令形式:x0dx0aString MyObjutsPixs= MyObjut.TjsString();x0dx0a說明:轉換後的字元串用作Ajax調用的字元串,以完成非同步傳輸。x0dx0a總結:如果您想處理大量的JavaScript對象,那麼JSON幾乎肯定是一個不錯的選擇,因此您可以輕松地將數據轉換成可以在請求中發送到伺服器端程序的格式。x0dx0a三。伺服器端JSONx0dx0a3.1向伺服器發送JSONx0dx0aa)通過get發送具有名稱/值對的JSONx0dx0a在JSON數據中,將有空格和各種字元。Web瀏覽器通常希望繼續編譯它們。為了確保這些字元不會在伺服器上造成混淆(或者在向伺服器發送數據的過程中),您需要在JavaScript的轉義()函數中執行以下操作:x0dx0aValueURL =「組織人」PHP?人=「+逃逸(人)tojSouthSnk());x0dx0aRequest.open(「獲取」,URL,TRUE);x0dx0a請求.OnRead狀態更改= UpDebug網頁;x0dx0aRequest.send(NULL);x0dx0aB)使用POST請求發送JSON數據x0dx0a當您決定使用POST請求將JSON數據發送到伺服器時,您不需要對代碼進行很多更改。x0dx0aValueURL =「組織人」PHP?時間戳=「+新日期())GetTime();x0dx0aRequest.open(「POST」,URL,TRUE);x0dx0a請求.OnRead狀態更改= UpDebug網頁;x0dx0aRequest.setRequestHeader(「內容類型」,「應用程序/ X-WWW格式- URLNECODE」);x0dx0aRequest.send(Posi.TjsSouthScript)x0dx0a注意:賦值的格式必須是var MSG=EVE(+(Req.ReffStEXT++))。x0dx0a3.2解釋伺服器上的JSONx0dx0aa)處理JSON的兩個步驟。x0dx0a對於用於編寫伺服器端程序的語言,可以找到相應的JSON解析器/工具箱/助手API。x0dx0a使用JSON解析器/工具箱/幫助器API從客戶端獲取請求數據,並將數據轉換成腳本可以理解的內容。x0dx0ab)尋找JSON解析器x0dx0a找到JSON解析器或工具箱的最佳資源是JSON站點。如果使用JavaServlet,JSON.org上的Or.JSON包是一個不錯的選擇。在這種情況下,您可以從JSON網站下載JSON.ZIP,並添加到項目生成目錄中包含的源文件。復合後
㈤ 如何給http伺服器發送post請求
1、HTTP請求概述
在前面有一篇文章對HTTP協議有詳細的描述,這里就不再過多的做說明,只是簡單的作為這篇文章的引子。
HTTP協議又被稱為超文本傳輸協議,它的的設計目的是保證客戶機與伺服器之間的通信。HTTP 的工作方式是客戶端與伺服器之間的請求-應答協議。在客戶端和伺服器之間進行請求-響應時,有兩個最基本的請求方式:GET 和 POST。
其中,GET請求表示從指定的資源請求數據,POST請求表示向指定的資源提交要被處理的數據。
2、HTTP請求格式
在HTTP請求中,首先是請求行,注意這里的請求行一定要放在最前面;其次,是請求頭,英文表示為header;然後會空一行,緊接著就可以是請求的具體內容了,一般稱之為請求體,request-body。給出一個圖示如下:
3、GET請求與POST請求對比
GET請求與POST請求有一些異同點,主要有以下幾點問題:
(1)、GET請求和POST請求都是客戶端與伺服器之間交互,請求--應答模式的協議
(2)、GET請求是通過URL直接請求數據,數據信息可以在URL中直接看到,比如瀏覽器訪問;而POST請求是放在請求頭中的,我們是無法直接看到的;
(3)、GET提交有數據大小的限制,一般是不超過1024個位元組,而這種說法也不完全准確,HTTP協議並沒有設定URL位元組長度的上限,而是瀏
覽器做了些處理,所以長度依據瀏覽器的不同有所不同;POST請求在HTTP協議中也沒有做說明,一般來說是沒有設置限制的,但是實際上瀏覽器也有默認
值。總體來說,少量的數據使用GET,大量的數據使用POST。
(4)、GET請求因為數據參數是暴露在URL中的,所以安全性比較低,比如密碼是不能暴露的,就不能使用GET請求;POST請求中,請求參數信息是放在請求頭的,所以安全性較高,可以使用。在實際中,涉及到登錄操作的時候,盡量使用HTTPS請求,安全性更好。
下面給出一副圖示,說明一下HTTP中GET與POST請求的差異:
4、使用步驟:
在Android中使用HTTP請求,主要步驟如下:
(1)、實例化一個HttpGet(或HttpPost)對象,將請求的URL地址通過構造方法傳給HttpGet(或HttpPost)對象;
(2)、使用DefaultHttpClient類的execute方法發送GET或POST 請求,並返回HttpResponse對象;
(3)、通過HttpResponse介面的getEntity方法返回響應信息。
5、實例代碼
給出一個在實際應用中的一個POST請求的代碼片段:
[java] view plain print?
params = new LinkedList();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二個參數"));
try {
HttpPost post = new HttpPost(baseUrl);
post.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中
HttpResponse response = httpClient.execute(post); //執行POST方法
resCode = response.getStatusLine().getStatusCode()); //獲取響應碼
result = EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
6、HTTP請求狀態碼意義
HTTP請求中,主要有這樣幾個類型:1XX:表示信息提示,2XX:表示成功,3XX:表示重定向,4XX:表示客戶端請求錯誤,5XX:表示伺服器錯誤。常見的幾個HTTP請求狀態碼意義如下:
200 OK: 找到了該資源,並且一切正常。
304 NOT MODIFIED: 該資源在上次請求之後沒有任何修改。這通常用於瀏覽器的緩存機制。
401 UNAUTHORIZED: 客戶端無權訪問該資源。這通常會使得瀏覽器要求用戶輸入用戶名和密碼,以登錄到伺服器。
403 FORBIDDEN: 客戶端未能獲得授權。這通常是在401之後輸入了不正確的用戶名或密碼。
404 NOT FOUND: 在指定的位置不存在所申請的資源。
505 NOT SUPPORTED:伺服器不支持請求中所指明的HTTP版本
㈥ 怎麼向其他伺服器發送post請求
/**
* 發送post請求
* @param string $url 請求地址
* @param array $post_data post鍵值對數據
* @return string
*/
function send_post($url, $post_data) {
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60 // 超時時間(單位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
㈦ 向伺服器發送請求的參數的值是如何傳過去的
//觸發函數
function
checkpart(){
var
hhpntext=document.getElementById("HHPNText").value;
var
url="./CheckPartServlet?HHPNText="+hhpntext;//請求地址及參數傳遞
xmlHttp.open("GET",
url,
true);//建立請求
xmlHttp.onreadystatechange=handle;//設置回調函數
xmlHttp.send(null);//發送請求
你如果用post的話就放到下面的send裡面
㈧ 一個安卓問題,請問安卓post提交數據到伺服器,可以傳遞一個實體類對象給伺服器嗎,裡面帶有參數,
數據統一使用json格式傳輸,你的實體類轉換成json後再往伺服器傳
㈨ 如何用vb.net上傳post數據給伺服器
圖有點模糊。
伺服器端要有方法接收,接收的參數要看方法的定義。
Controller A裡面假設有這個get Action
<httppost>
function get(frm as formcollection) as actionresult
dim a as string=frm("keyword")
return content(a)
end function
頁面View 中
@Using FormBegin("get","A","POST")
@<div>
<input name="keyword" type="text"/>
<Input type="submit" value="提交"/>
end using
你在頁面上點擊按鈕「提交」後,就會把表單的中keyword文本框的內容賦值給a.
這里我用的是MVC..前端用的VB Razor.