导航:首页 > 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相关的知识