精华内容
下载资源
问答
  • 一般在网站搭建中servlet只需处理post,get请求便足已。本篇注重使用javaweb编写restful风格api,在servlet中对四种常用请求进行处理。  在api中对于一个请求要做的通常是提取header参数,提取携带数据(post,put)...

      一般在网站搭建中servlet只需处理post,get请求便足已。本篇注重使用javaweb编写restful风格api,在servlet中对四种常用请求进行处理。

      在api中对于一个请求要做的通常是提取header参数,提取携带数据(post,put)。在这里已post为例来说明用法。

      下面是发起的post请求,用python(很简单)写的,该请求既有自定义header参数Bearer,也有携带数据bodys里的内容

    import json
    import requests
    
    taken='YWMtoWBEBAFOEeei0SdHniRB6QAAAAAAAAAAAAAAAAAAjwAU4R56atn3HZQyagAgMAAAFanGEFTABPGgAqPOaU00kjW851AIpsKCuT8jAG1PqHyBpY6y5vOgk1zg'
    headers = {'Accept': 'application/json','Content-Type':'application/json','Authorization':'Bearer '+taken}
    bodys={'username':'test5','password':'123456'}
    url='http://localhost:8080/xiaoyanAPI'
    response=requests.post(url,data=json.dumps(bodys),headers=headers)
    print response.text

      下面是处理post请求代码

     1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     2         //打印某一个header
     3         System.out.println(request.getHeader("Authorization"));
     4         System.out.println();
     5         //获取header参数名,并打印出内容
     6         Enumeration<String> s=request.getHeaderNames();
     7         String str;
     8         while((str=s.nextElement())!=null)
     9             System.out.println(request.getHeader(str));
    10         System.out.println();
    11         //获取post携带数据流
    12         String acceptjson;
    13         try {
    14             BufferedReader br = new BufferedReader(new InputStreamReader( (ServletInputStream) request.getInputStream(), "utf-8"));  
    15                         StringBuffer sb = new StringBuffer("");  
    16                         String temp;  
    17                         while ((temp = br.readLine()) != null) {  
    18                             sb.append(temp);  
    19                         }  
    20                         br.close();  
    21                         acceptjson = sb.toString();  
    22                         System.out.print(acceptjson);
    23                     } catch (Exception e) {  
    24                         e.printStackTrace();    
    25                     }
    26     }

      其他三种请求处理方式类似。

    转载于:https://www.cnblogs.com/wuyoucao/p/6547661.html

    展开全文
  • 1. 处理get请求参数 node有自己的核心模块,在这里就用到了url模块。 url.parse(); 方法可以将一个完整的URL地址,分为多部分,常用的有:host、port、pathname、path、query。 第一个参数是地址, 第二个参数默认...

    原生node中怎么获取get/post请求参数

    1. 处理get请求参数

    node有自己的核心模块,在这里就用到了url模块。
    url.parse(); 方法可以将一个完整的URL地址,分为很多部分,常用的有:host、port、pathname、path、query。
    第一个参数是地址,
    第二个参数默认是false,设置为ture后,其query属性就会从查询字符串格式(“a=1&b=2”)转换为了对象格式({a: 1,b: 2})。

    var urlObj = url.parse(req.url ,true);
     var query = urlObj.query;
    console.log(urlObj);
    console.log(query);
    
    //结果
    Url {
      protocol: null,
      slashes: null,
      auth: null,
      host: null,
      port: null,
      hostname: null,
      hash: null,
      search: '?a=9&c=5',
      query: [Object: null prototype] { a: '9', c: '5' },
      pathname: '/index.html',
      path: '/index.html?a=9&c=5',
      href: '/index.html?a=9&c=5'
    }
    
    [Object: null prototype] { a: '9', c: '5' }
    

    2. 处理post请求参数

    获得post参数对象,需要用到第三方包querystring

    //1.创建空字符叠加数据片段
    var data = '';
    
    //2.注册data事件接收数据(每当收到一段表单提交的数据,该方法会执行一次)
    req.on('data', function (chunk) {
        // chunk 默认是一个二进制数据,和 data 拼接会自动 toString
        data += chunk;
    });
    
    // 3.当接收表单提交的数据完毕之后,就可以进一步处理了
    //注册end事件,所有数据接收完成会执行一次该方法
    //使用querystring对url进行反序列化(解析url将&和=拆分成键值对),得到一个对象
    req.on('end', function () {
        console.log(data);
        var dataObject = querystring.parse(data);
        console.log(dataObject);
    });
    

    express获取参数

    1.获取请求参数对象req.query

    req.query;
    

    注意: 它不仅针对于get请求,只要是前端在链接后以查询字符串传给后台的,都可以用这种方式获取

    2.获取post请求参数对象req.body
    body-parser是express常用的一个中间件,用来解析表单的post请求数据
    body-parser用来处理不同类型的请求体、不同的编码、不同的压缩类型等

     //配置
    var bodyParser = require("body-parser");
    app.use(bodyParser.urlencoded({ extended: false }))
    app.use(bodyParser.json())
    
    //使用
    req.body;
    
    展开全文
  • httpUrlConnection用于post请求和get请求

    千次阅读 2014-05-12 16:39:52
    常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
    最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
    在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助。
    下面的代码简单描述了如何使用HttpURLConnection发起这两种请求,以及传递参数的方法:
    public class HttpInvoker ...{

        public static final String GET_URL = "http://localhost:8080/welcome1";

        public static final String POST_URL = "http://localhost:8080/welcome1";

        public static void readContentFromGet() throws IOException ...{
            // 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
            String getURL = GET_URL + "?username="
                    + URLEncoder.encode("fat man", "utf-8");
            URL getUrl = new URL(getURL);
            // 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
            // 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
            HttpURLConnection connection = (HttpURLConnection) getUrl
                    .openConnection();
            // 进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
            // 服务器
            connection.connect();
            // 取得输入流,并使用Reader读取
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            System.out.println("=============================");
            System.out.println("Contents of get request");
            System.out.println("=============================");
            String lines;
            while ((lines = reader.readLine()) != null) ...{
                System.out.println(lines);
            }
            reader.close();
            // 断开连接
            connection.disconnect();
            System.out.println("=============================");
            System.out.println("Contents of get request ends");
            System.out.println("=============================");
        }

        public static void readContentFromPost() throws IOException ...{
            // Post请求的url,与get不同的是不需要带参数
            URL postUrl = new URL(POST_URL);
            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) postUrl
                    .openConnection();
            // Output to the connection. Default is
            // false, set to true because post
            // method must write something to the
            // connection
            // 设置是否向connection输出,因为这个是post请求,参数要放在
            // http正文内,因此需要设为true
            connection.setDoOutput(true);
            // Read from the connection. Default is true.
            connection.setDoInput(true);
            // Set the post method. Default is GET
            connection.setRequestMethod("POST");
            // Post cannot use caches
            // Post 请求不能使用缓存
            connection.setUseCaches(false);
            // This method takes effects to
            // every instances of this class.
            // URLConnection.setFollowRedirects是static函数,作用于所有的URLConnection对象。
            // connection.setFollowRedirects(true);

            // This methods only
            // takes effacts to this
            // instance.
            // URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数
            connection.setInstanceFollowRedirects(true);
            // Set the content type to urlencoded,
            // because we will write
            // some URL-encoded content to the
            // connection. Settings above must be set before connect!
            // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
            // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
            // 进行编码
            connection.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
            // 要注意的是connection.getOutputStream会隐含的进行connect。
            connection.connect();
            DataOutputStream out = new DataOutputStream(connection
                    .getOutputStream());
            // The URL-encoded contend
            // 正文,正文内容其实跟get的URL中'?'后的参数字符串一致
            String content = "firstname=" + URLEncoder.encode("一个大肥人", "utf-8");
            // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面
            out.writeBytes(content); 

            out.flush();
            out.close(); // flush and close
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            System.out.println("=============================");
            System.out.println("Contents of post request");
            System.out.println("=============================");
            while ((line = reader.readLine()) != null) ...{
                System.out.println(line);
            }
            System.out.println("=============================");
            System.out.println("Contents of post request ends");
            System.out.println("=============================");
            reader.close();
            connection.disconnect();
        }

        /** *//**
         * @param args
         */
        public static void main(String[] args) ...{
            // TODO Auto-generated method stub
            try ...{
                readContentFromGet();
                readContentFromPost();
            } catch (IOException e) ...{
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }
    上面的readContentFromGet()函数产生了一个get请求,传给servlet一个username参数,值为"fat man"。
    readContentFromPost()函数产生了一个post请求,传给servlet一个firstname参数,值为"一个大肥人"。
    HttpURLConnection.connect函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。无论是post还是get,http请求实际上直到HttpURLConnection.getInputStream()这个函数里面才正式发送出去。

    在readContentFromPost()中,顺序是重中之重,对connection对象的一切配置(那一堆set函数)都必须要在connect()函数执行之前完成。而对outputStream的写操作,又必须要在inputStream的读操作之前。这些顺序实际上是由http请求的格式决定的。

    http请求实际上由两部分组成,一个是http头,所有关于此次http请求的配置都在http头里面定义,一个是正文content,在connect()函数里面,会根据HttpURLConnection对象的配置值生成http头,因此在调用connect函数之前,就必须把所有的配置准备好。

    紧接着http头的是http请求的正文,正文的内容通过outputStream写入,实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络,而是在流关闭后,根据输入的内容生成http正文。
    展开全文
  • HTTP发送的数据有两种方式,一种是GET请求,一种是POST请求,GET请求就是简单的URL拼接参数,发送的参数长度也有限制。 而POST的参数可以设置在FORM中,参数长度也可以满足大多要求,有时从服务器的性能上考虑...

    HTTP发送的数据有两种方式,一种是GET请求,一种是POST请求,GET请求就是简单的URL拼接参数,发送的参数长度也有限制。

    而POST的参数可以设置在FORM中,参数长度也可以满足大多要求,有时从服务器的性能上考虑,防止恶意的GET尝试,很多接口都是限制POST方式的。


    那么POST请求发送参数来说常用也有两种方式,一种是拼接参数和GET一样,但是发送方式指定为POST。

    发送的数据不同,也可以在头上进行指定

    展开全文
  • 今天我需要调用某平台的接口,需要用到常用GET和POST请求。 看了需对代码示例,我的天哪,JAVA对待我这个新人,还真不友好,写个请求还需要弄一大堆代码,(据了解其实是有好用的封装类库,我还不会用)。相比之...
  • HttpURLConnection发送post和get请求

    万次阅读 2011-04-26 09:58:00
    HttpURLConnection发送post和get请求 最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的 不同之处在于post的参数不是放在URL字串里面,...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。在Java中可以使用...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
  • php判断请求类型,可以通过 $_SERVER 相关的参数来实现,这个很在对某些请求代码复用里面很常用。具体代码如下:、/***@todo: 判断是否为post*/if(!function_exists('is_post')){function is_post(){return isset($_...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。在Java中可以使用...
  • 请求常用对象

    2019-09-05 08:32:41
    请求常用对象 get和post请求的区别 参数提交的方式: get请求数据放在url上,即http协议头上以?参数1(k=v)&参数2的形式拼接 post将数据放在http的请求体中。 get参数在url中可见,post在url中不可见 安全...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet。post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。在Java中可以使用...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
  • 常用的请求接口主要有get请求和post请求 使用postman测试get接口 选择get请求方式 输入网址 可以在params中输入参数,一对key,value为一个参数,也可以直接在网址上添加到后面,直接添加“?",然后接参数,用“=...
  • 常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用...
  •  HTTP的请求方式有八种,最常用的就是GET和POST,剩下的几种方式都可以使用GET或者POST来实现,所以他们都使用的少,即使是在服务器端,也少使用。  GET:  使用get方式请求参数可以直接加在路径后面,...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

参数很常用get请求