導航:首頁 > IDC知識 > 伺服器post

伺服器post

發布時間:2020-12-11 03:06:45

1、為什麼我向伺服器Post數據的時候 伺服器總是給我500響應

500是伺服器錯誤,如果伺服器端確定沒問題,那麼就是你傳過去的數據有問題版,伺服器端解析權的時候沒有考慮到數據出錯的問題,拋異常了。
比如,你傳過去的是abc
但是伺服器端是這樣寫的:
Integer.parseInt("abc");
那這樣肯定報錯的。

2、如何用php向伺服器發送post請求

用PHP向伺服器發送HTTP的POST請求,代碼如下:

<?php
/**    
 * 發送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;    
}

使用的時候直接調用上面定義的send_post方法:

$post_data = array(
    'username' => 'username',
    'password' => 'password'
);
send_post('網址', $post_data);

3、伺服器對get和post的處理區別??

其不同之處有以下幾點:
(1)Get屬於明文提交(即把傳遞的內容顯示在地址欄),而Post相反;
(2)由於內Get屬明文提容交方式,因此相對於Post來說安全性較差;
(3)Get傳輸數據量較少,Post較多;
(4)Get傳輸速度快,Post相對較慢;

4、伺服器如何判斷post請求者身份

一般有兩種方法,一種傳統的用cookie
另一種是通過token的方式,就是你說的那內種

referer的方式不可行,只要用容戶可以修改的數據都不可信,而token是用戶登錄後服務端下發的,原則上客戶端不能自己生成,所以可以驗證身份

5、什麼是伺服器開機post?

開機提示post error occurs解決copy方法: 1.板上的鈕扣電池電壓不足,建議換電池 2.開機鍵盤三指示燈亮是按F1,找到Standard CMOS Features Setup選項,此項中找到 Load Fail-Safe Defaults ,選中後回車,再按Y,回車。 選擇Save&exit step(保存設...

6、關於JSP的GET,POST區別的這句話怎麼理解:Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據

說實來話第一次看見你這個源問題,我也蒙了,這么坑爹的話,你從哪裡看到的?不會是哪本坑爹的書吧。我百度了下,百度文庫裡面有一個文檔,還是第一頁= =,害人子弟。對於第一句「Get是用來從伺服器上獲得數據」你可以忽略了,不管別人怎麼認為,反正我認為這是坑爹的,更是坑害新手的。
jsp中get和post的理解,你可以先從html的get和post理解開始。從形式上來說:
(1)get的參數會顯示在地址欄,而post的參數不會。
(2)get提交方式伺服器用doGet()方法接受,post的用doPost()方法接收。
(3)get提交的參數有一定的大小限制,post沒有大小限制。
從協議和本質上來說:
(1)get不經過加密,post經過加密。
(2)get的編碼方式根據你的頁面指定的編碼編碼的和伺服器無關,而post在tomcat環境下是有tomcat的server.xml指定的。
(3)他們的數據包的頭部協議是有差別的。
在jsp環境下,建議使用post方法。

如果採納了,多少給點分唄。

7、如何給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 copy 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版本

8、如何使用JSON格式 POST數據到伺服器

1. JSON的數據格式
a) 按照最簡單的形式,可以用下面這樣的 JSON 表示名稱/值對:

{ "firstName": "Brett" }

b) 可以創建包含多個名稱/值對的記錄,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }

c) 可以創建值的數組

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
]}

d) 當然,可以使用相同的語法表示多個值(每個值包含多個記錄):

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}

注意,在不同的主條目(programmers、authors 和 musicians)之間,記錄中實際的名稱/值對可以不一樣。JSON 是完全動態的,允許在 JSON 結構的中間改變表示數據的方式。

2. 在 JavaScript 中使用 JSON
JSON 是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。
2.1 將 JSON 數據賦值給變數
例如,可以創建一個新的 JavaScript 變數,然後將 JSON 格式的數據字元串直接賦值給它:

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}

2.2 訪問數據
將這個數組放進 JavaScript 變數之後,就可以很輕松地訪問它。實際上,只需用點號表示法來表示數組元素。所以,要想訪問 programmers 列表的第一個條目的姓氏,只需在JavaScript 中使用下面這樣的代碼:

people.programmers[0].lastName;

注意,數組索引是從零開始的。

2.3 修改 JSON 數據
正如訪問數據,可以按照同樣的方式修改數據:

people.musicians[1].lastName = "Rachmaninov";

2.4 轉換回字元串
a) 在 JavaScript 中這種轉換也很簡單:

String newJSONtext = people.toJSONString();

b) 可以將任何 JavaScript 對象轉換為 JSON 文本。並非只能處理原來用 JSON 字元串賦值的變數。為了對名為 myObject 的對象進行轉換,只需執行相同形式的命令:

String myObjectInJSON = myObject.toJSONString();

說明:將轉換回的字元串作為Ajax調用的字元串,完成非同步傳輸。
小結:如果要處理大量 JavaScript 對象,那麼 JSON 幾乎肯定是一個好選擇,這樣就可以輕松地將數據轉換為可以在請求中發送給伺服器端程序的格式。

3. 伺服器端的 JSON
3.1 將 JSON 發給伺服器
a) 通過 GET 以名稱/值對發送 JSON
在 JSON 數據中會有空格和各種字元,Web 瀏覽器往往要嘗試對其繼續編譯。要確保這些字元不會在伺服器上(或者在將數據發送給伺服器的過程中)引起混亂,需要在JavaScript的escape()函數中做如下添加:

var url = "organizePeople.php?people=" + escape(people.toJSONString());
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);

b) 利用 POST 請求發送 JSON 數據
當決定使用 POST 請求將 JSON 數據發送給伺服器時,並不需要對代碼進行大量更改,如下所示:

var url = "organizePeople.php?timeStamp=" + new Date().getTime();
request.open("POST", url, true);
request.onreadystatechange = updatePage;
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(people.toJSONString());

注意:賦值時格式必須是var msg=eval('(' + req.responseText + ')');

3.2 在伺服器上解釋 JSON
a) 處理 JSON 的兩步驟。
針對編寫伺服器端程序所用的語言,找到相應的 JSON 解析器/工具箱/幫助器 API。
使用 JSON 解析器/工具箱/幫助器 API 取得來自客戶機的請求數據並將數據轉變成腳本能理解的東西。
b) 尋找 JSON 解析器
尋找 JSON 解析器或工具箱最好的資源是 JSON 站點。如果使用的是 Java servlet,json.org 上的 org.json 包就是個不錯的選擇。在這種情況下,可以從 JSON Web 站點下載 json.zip 並將其中包含的源文件添加到項目構建目錄。編譯完這些文件後,一切就就緒了。對於所支持的其他語言,同樣可以使用相同的步驟;使用何種語言取決於您對該語言的精通程度,最好使用您所熟悉的語言。
c) 使用 JSON 解析器
一旦獲得了程序可用的資源,剩下的事就是找到合適的方法進行調用。如果在 servlet 中使用的是 org.json 包,則會使用如下代碼:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
} catch (Exception e) { //report an error }
try {
JSONObject jsonObject = new JSONObject(jb.toString());
} catch (ParseException e) {
// crash and burn
throw new IOException("Error parsing JSON request string");
}
// Work with the data using methods like...
// int someInt = jsonObject.getInt("intParamName");
// String someString = jsonObject.getString("stringParamName");
// JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");
// JSONArray arr = jsonObject.getJSONArray("arrayParamName");
// etc...
}

9、php如何接收別的伺服器post過來的數據 - 技術問答

你這來個人咋就轉不過來彎呢源?不管是啥玩意,post過來的數據都在$_POST里如果post的是xml字元串那你就$_POST[\'xml\'],simplexml_load_string 解析直接可以用;如果是以文件(上傳)提交的那就$_FILES,按照處理上傳文件的方法,然後simplexml_load_file 解析PS: ASP還活著?

10、伺服器對get和post的處理區別??

Get和Post是提交來表單數據的兩種源形式
其不同之處有以下幾點:
(1)Get屬於明文提交(即把傳遞的內容顯示在地址欄),而Post相反;
(2)由於Get屬明文提交方式,因此相對於Post來說安全性較差;
(3)Get傳輸數據量較少,Post較多;
(4)Get傳輸速度快,Post相對較慢;

與伺服器post相關的知識