精华内容
下载资源
问答
  • URLConnection POST方式传参总结

    千次阅读 2018-03-30 15:45:38
    URLConnection POST方式传参总结 HTTP Post方法用于向服务器提交数据,写法比Get方法稍微复杂那么一点,这里总结一下Post方式传参的几种方法1、 一个或者多个参数,以form形式提交,提交形式如“name=zhangsan&...

    URLConnection POST方式传参总结

     

    HTTP Post方法用于向服务器提交数据,写法比Get方法稍微复杂那么一点,这里总结一下Post方式传参的几种方法

    1、  一个或者多个参数,以form形式提交,提交形式如“name=zhangsan&password=123456”,

    提交代码如下(只是关键语句,不是完整代码):

     URLpostUrl = new URL("your url");
            //
    打开连接
            HttpURLConnection connection =(HttpURLConnection) postUrl.openConnection();
          
            //
    设置是否向connection输出,因为这个是post请求,参数要放在
            // http
    正文内,因此需要设为true
            connection.setDoOutput(true);
            // Read from the connection. Defaultis true.
            connection.setDoInput(true);
            //
    默认是 GET方式
           connection.setRequestMethod("POST");
           
            // Post
    请求不能使用缓存
            connection.setUseCaches(false);
           
           connection.setInstanceFollowRedirects(true);
           
            //
    配置本次连接的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 = newDataOutputStream(connection
                   .getOutputStream());
            // The URL-encoded contend
            //
    正文,正文内容其实跟getURL '? '后的参数字符串一致
            String content = "name=" +URLEncoder.encode("zhangsan", "UTF-8");
            content +="&password="+URLEncoder.encode("123456","UTF-8");;
            // DataOutputStream.writeBytes
    将字符串中的16位的unicode字符以8位的字符形式写到流里面
            out.writeBytes(content);

            out.flush();
            out.close(); 
            
            BufferedReader reader = newBufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            
            while ((line = reader.readLine()) !=null){
               System.out.println(line);
            }
          
            reader.close();
            connection.disconnect();

     

    2、  参数以json格式提交,提交方法首先需要把提交的数据对象转换为json格式字符串,然后提交该字符串,代码如下(只是关键语句,不是完整代码):

    publicstatic String doPost(String urlPath, String jsonStr) {

            String result = "";

            BufferedReader reader = null;

            try {

                URL url = new URL(urlPath);

                HttpURLConnection conn =(HttpURLConnection) url.openConnection();

                conn.setRequestMethod("POST");

                conn.setDoOutput(true);

                conn.setDoInput(true);

                conn.setUseCaches(false);

               conn.setRequestProperty("Connection", "Keep-Alive");

                conn.setRequestProperty("Charset","UTF-8");

               conn.setRequestProperty("Content-Type","application/json;charset=UTF-8");

                conn.setRequestProperty("accept","application/json");

                // 往服务器里面发送数据

                if (Json != null &&!TextUtils.isEmpty(jsonStr)) {

                    byte[] writebytes =jsonStr.getBytes();

                   conn.setRequestProperty("Content-Length",String.valueOf(writebytes.length));

                    OutputStream outwritestream =conn.getOutputStream();

                    outwritestream.write(jsonStr.getBytes());

                    outwritestream.flush();

                    outwritestream.close();

                }

                if (conn.getResponseCode() == 200){

                    reader = new BufferedReader(

                            newInputStreamReader(conn.getInputStream()));

                    result = reader.readLine();

                }

            } catch (Exception e) {

                e.printStackTrace();

            } finally {

                if (reader != null) {

                    try {

                        reader.close();

                    } catch (IOException e) {

                        e.printStackTrace();

                    }

                }

            }

            return result;

        }

     

    另外,关于何时使用BufferReader.read()和BufferReader.readLine()方法,可参考如下两篇博客:

    1、  http://cuisuqiang.iteye.com/blog/1434416#comments

    2、   https://www.cnblogs.com/dongrilaoxiao/p/6688107.html
    展开全文
  • post方式传参方式打开新窗口

    千次阅读 2012-04-01 18:06:18
    以post方式传参方式打开新...要改为post传参方式需要使用一个隐藏form来提交参数,但使用form的target新建窗口又不能自定义window样式。 google了下,可以在提交form的时候使用window.open新建一个空窗口,并将form的

    以post方式传参方式打开新窗口

     

    在使用winow.open打开新窗口时,因为是get方式传参,经常因为参数过长产生一些错误,考虑改用post传参来避免这一问题。
    要改为post传参方式需要使用一个隐藏form来提交参数,但使用form的target新建窗口又不能自定义window样式。
    google了下,可以在提交form的时候使用window.open新建一个空窗口,并将form的target设置为window的name,就能使form的新建的窗口内提交了。


    function openPostWindow(url, args, name){
      var tempForm = document.createElement_x("form");
      tempForm.id="tempForm";
      tempForm.method="post";
      tempForm.action=url;
      tempForm.target=name;
      tempForm.style.display="none";
    //可传入多个参数
      for(var i=0; i<args.length; i++){
        var hideInput = document.createElement_x("input");
        hideInput.type="hidden";
        hideInput.name=args[i][0];
        hideInput.value=args[i][1];
        tempForm.appendChild(hideInput); 
      }
      tempForm.attachEvent("onsubmit",function(){ window.open("about:blank",name,"directories=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no"); });
      document.body.appendChild(tempForm);
      tempForm.fireEvent("onsubmit");
      tempForm.submit();
      document.body.removeChild(tempForm);
    }

     

    展开全文
  • POST方式传参,后台用Integer类型接收不到,如下图: 这是postman调的入参: 这里已经进入断点了,id = null 用这种方法就可以:先获取string类型的json串,然后再转成Integer ...

    POST方式传参,后台用Integer类型接收不到,如下图:
    这是postman调的入参:
    入参
    这里已经进入断点了,id = null在这里插入图片描述

    用这种方法就可以:先获取string类型的json串,然后再转成Integer

    在这里插入图片描述

    展开全文
  • 在项目中遇到的问题,服务器总是收不到参数,使用的是post传参方式。 使用 StringRequest 来进行传参。因需要设置头文件和Params进行传输。重写了 getHeaders() 函数。经过捕获数据进行调试之后,发现是因为 ...

    在项目中遇到的问题,服务器总是收不到参数,使用的是post的传参方式。
    使用 StringRequest 来进行传参。

    因需要设置头文件和Params进行传输。

    重写了 getHeaders() 函数。

    经过捕获数据进行调试之后,发现是因为 getHeaders() 里面写了

    headers.put("Content-Type", "application/json; charset=utf-8");

    导致服务器接收不到数据。

    把上述代码去掉即可解决问题。

    展开全文
  • 小程序通过wx.request()使用post方式传参遇到的坑:打开调试器发现传参格式为json形式,而服务器端想要的数据格式为因此,需要在header中添加 "content-type": "application/x-...
  • 之前写了下vue-resource post传参 现在写下vue-axios post方式后台Controller接收不到参数的解决方法: 前台: <!-- axios --> <script src="https://unpkg.com/axios/dist/axios.min.js"></...
  • axios中get与post方式传参区别

    千次阅读 2020-04-24 21:37:51
    }) }) post用data let data ={startTime:startTime,endTime: endTime} axios({ url: url, headers: { 'Content-Type': 'application/json; charset=UTF-8', 'Access-Control-Allow-Origin': '*' }, withCredentials:...
  • postData = new Dictionary&lt;string, string&gt;(); postData.Add("user", "aaa"); postData.Add("pass", "bbb"); GetPageByPost("...
  • 参考网址 ... 重点注意: method 是 get 方式的时候,header为 {"Content-Type": 'application/json'}, method 为 post时,header为 {"Content-Type": "application/x-www-fo...
  • iframe&location.href使用post方式传参

    千次阅读 2019-07-09 19:30:25
    get请求在浏览器存在数据限制 且暴露数据 详情查看get/post请求参数长度最大值的一个理解误区 两种方式 两种方法 可以混用 iframe 使用form表单承载数据 指定form数据提交位置_iframe_name js调用提交 <body>...
  • // 设置请求方式    connection.setRequestProperty( "Accept" ,  "application/json" );  // 设置接收数据的格式    connection.setRequestProperty( "Content-Type" ,  "application/json" );  //...
  • 小程序wx.request的POST方式传参

    千次阅读 2019-03-13 13:53:53
    POST", header: { "content-type": "application/x-www-form-urlencoded" "content-type": "application/json" //默认 }, }) 使用默认的content-type,...
  • 微信小程序wx.request使用post方式传参

    万次阅读 2017-10-14 15:23:51
    需要注意的是method是get方式的时候,header为{"Content-Type": 'application/json'},当method为post时,header为{"Content-Type": "application/x-www-form-urlencoded"} post方式传递的参数需要转换 1。js中 ...
  • public CommonResult deleteRole...post方式传参是json格式的话,上述方法打印是null;实际上前端已经传了,只是我们接收的方式不对。 解决方法一:使用注解@RequestBody,需要使用JSONObject 转换  public
  • 急急忙忙尝试了2天,发现问题始终解决不掉   问题:通过微信小程序实现post  (后端是python flask  ...flask的post函数) ...解决方案:凭我的经验猜测 只传输一个值 data ...为了转换在小程序上post我费了些时间
  • type: 'post', // dataType: 'json', timeout: 3000, data:{name_province:name_province}, success: function(msg){ alert("dddd"+unescape(msg)); }, error: function(e){ ...
  • WCF Rest:不使用UriTemplate使用post方式传参解决HTTP400问题以及参数映射问题
  • MVC POST方式传参(同步方式)

    千次阅读 2011-07-26 10:56:18
    项目大体结构,后面有详细内容 Controllers 下的HomeController.cs 内容如下: public ActionResult Post() { return View(); }
  • 这是我自己封装的post方法 这是我传给data的参数 但发现前台报错,我发现Form Data成为了这样的格式,把传入的参数都当成了key,但value部分却是null 找到的解决方法是导入qs库(qs库已经包含在axios中,不需要...
  • 今天开发一个功能,需要从js跳转到新的页面上去,原先的方式是用 window.open('statistic/hospitalDetailStatisc?opid=' +urlEncode(ipid)); 这种方法当然是可以的 ,但是 这种方法其实是用get方式传递参数的,opid...
  • B图: ... 现在没找到良好的解决方案,我们可以使用一个比较间接的方式来解决它,就是给微信里面直接使用我们服务器的IP地址,不使用域名就可以了,这个处理和805错误有关系,不确定能完全解决。
  • 不使用get方式传参,而是用post传。   这件事情我当时觉得不太可能。没想到很快他就找到一个实现方式,试验通过了。 呵呵,看来好多看似不可能的东西,换个角度思考,就成了可能。     js 代码 &lt;...
  • < form id = "editForm" name = "editForm" method = "post" action = "viewUser" target = "colors123" onsubmit = "openSpecfiyWindown( 'colors123' )" > < fieldset > $!{User.id}" /> ...
  • 今天用ajax的post方式传值时,遇到一个问题,始终没有找到问题原因。后来把传的值中单引号去掉后,js正常了。 经过搜索,也没有找到具体原因。最后通过隐藏域来中转该字符串。最后解决这个问题!无语了!备忘!...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,297
精华内容 21,318
关键字:

post方式传参