『壹』 如何用php實現接收發送到伺服器的數據。。。。。。。
1、直接file_get_contents("滾大php://input") 這個函數就可以接到接沖備冊口傳參!散宏
2、建議使用json格式數據進行交互。
『貳』 請求一個關於AJAX向伺服器發送請求並且接收伺服器返回的數據的問題
第一個問題:先搞清ajax的底層通信形式,ajax發出請求後等待回復,也就是監聽某個信息埠,伺服器接到請求後,發送結果,也就是向某個埠寫信息,所以,不管在形式上編程上有什麼不同,都是向這個ajax所在地的信息埠輸出信息。
第二個問題,response==0是將response轉換為int類型再對比,肯定正確,而response肯定不等於"0",因為out.println("0"),println這個方法就是在輸出的字元串後加一個回車,你可以將response轉換為ascii碼看看是不是這樣。
『叄』 HTTP請求中常見的請求體數據的類型有哪些
HTTP請求中常見的請求體數據的類型有:
text/html: HTML格式
text/plain:純文本格式宏段
image/jpeg:jpg圖片格式拍絕棗
application/json: JSON數據格式
application/x-www-form-urlencoded: form表單數據被編碼為key/value格式發送到伺服器(表單默認的提交數據格式)
multipart/form-data: 在表單中進行文件上傳時使用
如果想系統的學習介面測試相關襲拆的技術,可以了解一下黑馬程序員的軟體測試課程,裡面講的非常詳細。
『肆』 如何使用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...
}
『伍』 請問伺服器默認返回是什麼格式數據
$.get(url,function(data){
$("#result"大旦).html(data);
})
不需要參數就不滾遲擾用寫旦歷。不要寫上個null。這樣不對。
『陸』 ajax請求發數據後,伺服器端php如何接收
ajax也有多種提交數據方式的,也是有get和post等,和表單數據一樣接收
『柒』 怎樣實現用ajax向伺服器發送請求並接收伺服器返回的數據,並在HTML頁面的Table中顯示
比如伺服器上有張表或者list
id name sex
1 張三 男
2 李四 女
3 王五 男
你首先在後台掘蔽或代碼中把這個表處理成為JSON格式然後用Response.write的方法輸出來,比如這樣
[{id:1,name:'張三',sex:'男'},{id:2,name:'李四',sex:'女'},{id:3,name:'王五',sex:'男'}]
JSON是用於在JS中描述實體對象的一種方式,具體關於JSON的知識可以看w3school.com.cn上的相關內容,我這兒就不給你細講了,很簡單,我只說做法:
為了方便使用,你需要在你的頁面中引用jQuery庫,我不知道你用什麼語言做的後台程序,原理一樣
$.ajax({
url:"這里換成你寫好的用於把表轉換成JSON的後台處理文件地址,比如a.aspx?參數",
type:"POST",//這里是AJAX請求的方式判伍
dataType:"JSON",//如果你回發的內容是JSON格式的就用這個,否則用Text或其他
data:{
參數1:值,
參數2:值,
......
參數n:值
},//要發送的參數,如果無參數可以不寫此項
success:function(data)
{
//此處寫入發送成功後要處理的代碼,而參數里的這個data,就是請求成功並運後返回來的上面那個格式的JSON,你可以用data[i]的值來取其中一行,如取張三的數據就是
data[0].name,就取出了張三的name屬性
所以你可以在這里用循環去處理data,然後將結果用document.write的方式輸出來就完成了。
},
error:function(XMLHttpRequest,Error,F)
{
//出錯後可以在這里給出提示,Error參數表示錯誤信息
}
});
還有弄不清楚的地方可以繼續和我探討。
『捌』 如何修改http協議的請求的數據格式
HTTP客戶請求數據格式
大多數servlet程序都是和瀏覽器客戶以HTTP協議進行通信的,這需要編程人員對程序的基本功能和HTTP協議的具體操作有深入的理解。在學習
servlet和Jsp編程時,有兩點值得注意:首先是對HTTP協議的操作過程和數據格式足夠熟悉,其次要靈活應用servlet的API中的有關方法
正確高效地處理有關數據。
一、HTTP客戶請求的數據格式說明
HTTP請求包括三部分:請求行(Request
Line),頭部(Headers)和數據體(Body)。其中,請求行由請求方法(method),請求網址Request-URI和協議
(Protocol)構成,而請求頭包括多個屬性,數據體則可以被認為是附加在請求之後的文本或二進制文件。
下面這個例子顯示了一個HTTP請求的Header內容,這些數據是真正以網路HTTP協議從IE瀏覽器傳遞到Tomcat服務肢和弊器上的。
GET /icwork/? search=proct HTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/vnd.ms-powerpoint,application/vnd.ms-excel,application/msword,*.*
Accept-Language:en-us
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 5.01;Windows NT 5.0;DigExt)
Host:
Referer:
Connection:Keep-Alive
這段程序使用了6個Header,還有一些Header沒有出現。我們參考這個例子具體解釋HTTP請求格式。
1.HTTP請求行:請求行格式為Method Request-URI Protocol。在上面這個例子里,逗GET /icwork/? search=pruct HTTP/1.1地是請求行。
2.Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式。Servlet可以根據它判斷並返回適當的文件格式。
3.Accept-Charset:指出瀏覽器可以接受的字元編碼。英文瀏覽器的默認值是ISO-8859-1.
4.Accept-Language:指出瀏覽器可以接受的語言種類,如en或en-us,指英語。
5.Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同於文件格式,它是為了壓縮文件並加速文件傳遞速度。瀏覽器在接收到Web響應之後先解碼,然後再檢查文件格式。
6.Authorization:當使用密碼機制時用來標識瀏覽器。
7.Cache-Control:設置關於請求被代理伺服器存儲的相關選項。一般servlet用不到。
8.Connection:用來告訴伺服器是否可以維持固定的HTTP連接。HTTP/1.1使用Keep-Alive為默認值,這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接。
9.Content-Type:用來表名request的內容類型。可歷族以用HttpServletRequest的getContentType()方法取得。
10.Cookie:瀏覽器用這個屬性向伺服器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和伺服器相關的用戶信息,也可以用來實現會話功能。
11.Expect:表時客棚塌戶預期的響應狀態。
12.From:給出客戶端HTTP請求負責人的email地址。
13.Host:對應網址URL中的Web名稱和埠號。
14.If-Match:供PUT方法使用。
15.If-Modified-Since:客戶使用這個屬性表明它只需要在指定日期之後更改過的網頁。因為瀏覽器可以使用其存儲的文件而不必從伺服器請求,這樣節省了Web資源。由於Servlet是動態生成的網頁,一般不需要使用這個屬性。
16.If-None-Match:和If-Match相反的操作,供PUT方法使用。
17.If-Unmodified-Since:和If-Match-Since相反。
18.Pragma:這個屬性只有一種值,即Pragma:no-cache,表明如果servlet充當代理伺服器,即使其有已經存儲的網頁,也要將請求傳遞給目的伺服器。
19.Proxy-Authorization:代理伺服器使用這個屬性,Servlet一般用不到。
20.Range:如果客戶有部分網頁,這個屬性可以請求剩餘部分。
21.Referer:表明產生請求的網頁URL。如比從網頁/icconcept/index.jsp中點擊一個鏈接到網頁/icwork
/search,在向伺服器發送的GET/icwork/search中的請求中,Referer是
/icconcept/index.jsp。這個屬性可以用來跟蹤Web請求是從什麼網站來的。
22.Upgrage:客戶通過這個屬性設定可以使用與HTTP/1.1不同的協議。
23.User-Agent:是客戶瀏覽器名稱。
24.Via:用來記錄Web請求經過的代理伺服器或Web通道。
25.Warning:用來由客戶聲明傳遞或存儲(cache)錯誤。
補充.Transfer-Encoding:
當不能預先確定報文體的長度時,不可能在頭中包含Content-Length域來指明報文體長度,此時就需要通過Transfer-Encoding域來確定報文體長度。
通常情況下,Transfer-Encoding域的值應當為chunked,表明採用chunked編碼方式來進行報文體的傳輸。chunked編碼是HTTP/1.1 RFC里定義的一種編碼方式,因此所有的HTTP/1.1應用都應當支持此方式。
chunked編碼的基本方法是將大塊數據分解成多塊小數據,每塊都可以自指定長度
二、下面是一個分析並顯示客戶請求的Header信息的servlet(tomcat下測試通過):
java 代碼
Code:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Enumeration;
public class headerinfo extends HttpServlet{
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException
{
/*
Enumeration e = req.getHeaderNames();
while (e.hasMoreElements()) {
String s = (String) e.nextElement();
System.out.println("header: " + s + " " + req.getHeader(s));
}
e = req.getAttributeNames();
while (e.hasMoreElements()) {
String s = (String) e.nextElement();
System.out.println("attribute: " + s + " " + req.getAttribute(s));
}
e = req.getParameterNames();
while (e.hasMoreElements()) {
String s = (String) e.nextElement();
System.out.println("parameter: " + s + " " + req.getParameter(s));
}*/
resp.setContentType("text/html; charset=GBK");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>FormParameterServlet</title></head>");
out.println("<body bgcolor=\"white\">");
out.println("<center><font color=\"#009999\" size=\"4\" face=\"Arial\">");
out.println("<strong>List of all Headers in Servlet Request</strong>");
out.println("</font></center>");
out.println("<hr>");
out.println("<H3>Request Line is:</H3>");
out.println("<b>Method:</b>"+req.getMethod()+"<br>");
out.println("<b>URI:</b>"+req.getRequestURI()+"<br>");
out.println("<b>Protocol</b>"+req.getProtocol()+"<br>");
out.println("<center><h3>Header Name and Values</h3></center>");
out.println("<table border=1 align=center>");
out.println("<tr bgcolor='#99cee6'><th>Name</th><th>value</th></tr>");
Enumeration headernames = req.getHeaderNames();
while(headernames.hasMoreElements()){
String headername = (String)headernames.nextElement();
out.println("<tr><td>"+headername+"</td><td>"+req.getHeader(headername)+"</td></tr>");
}
out.println("</table></body></html>");
out.flush();
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException
{
doPost(req,resp);
}
}
『玖』 瀏覽器與伺服器之間傳送的請求和數據都是以什麼格式傳輸的(主要是想弄清楚json和xml和html的區別)
樓主您好
瀏覽器伺服器之間請求 json,xml都可以,json居多
區別,json和xml都是用來傳輸的,json優點是格式體積小,xml優點要少,可能看起來更容易(不一定)?
html完全不一樣,是瀏覽器解析的前台頁面展示的標簽元素的一種語言