导航:首页 > 配服务器 > 服务器如何接收请求数据格式

服务器如何接收请求数据格式

发布时间:2023-04-24 12:57:19

‘壹’ 如何用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完全不一样,是浏览器解析的前台页面展示的标签元素的一种语言

阅读全文

与服务器如何接收请求数据格式相关的资料

热点内容
怎么下载三维app 浏览:73
把pdf中的图片导出到excel 浏览:501
php操作redis实例 浏览:139
苹果app怎么绑卡 浏览:974
便签加密的笔记在哪里打开 浏览:839
php截取时间函数 浏览:867
lol手游版怎么下载安卓版 浏览:81
10年程序员做地摊 浏览:628
安卓手机拍摄慢动作怎么设置 浏览:482
中国程序员加油 浏览:174
python去哪个城市比较多 浏览:761
闪迪u盘加密初始密码 浏览:773
房屋办理解压需要契税和发票吗 浏览:891
丽江易学java高级程序员 浏览:663
程序员木兰教程 浏览:667
pythontkinter按钮 浏览:441
如何快捷录音安卓 浏览:9
sd播放音乐需要哪些文件夹 浏览:841
华为平板m3怎么升级到安卓11 浏览:534
联通app排队号怎么看 浏览:649