zoukankan      html  css  js  c++  java
  • 解决使用webbrowser请求url时数据传递丢失问题

    问题: 

    使用“ this.webBrowser.Url = new Uri(webBrowserUrl);”方式请求Action(Java Web)并传递数据,在webBrowserUrl中携带的参数过长时,java web中接收到的数据值部分丢失。

    原因

    使用此方式请求url,相当于GET请求,而GET方法提交的数据有长度限制(由浏览器、服务器决定,HTTP GET方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制),故而在传递数据过长时会出现数据部分丢失问题。

    解决方式

    使用webBrowser.Navigate方法post提交数据。

    eg:

    1 string param="ssss=wwww&sss=dddddd";
    2 byte[] postBuffer = new byte[param.Length];
    3 postBuffer = System.Text.Encoding.UTF8.GetBytes(param);
    4 string heads = string.Format("{0}:{1}
    {2}:{3}
    {4}:{5}", "Accept", "*/*", "Content-Type", "application/x-www-form-urlencoded", "User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"
    5 string tagerFrameName="";
    6 this.webBrowser.Navigate(webBrowserUrl, tagerFrameName, postBuffer, heads);

    注意:若想要在Action中使用request.getParameter方法获取传递的参数,必须要在heads中添加Content-Type的相关配置。

  • 相关阅读:
    第二章作业题
    数据类型及内置方法
    流程控制
    Python入门,基本数据类型
    练习题
    Java中的时间日期Date和Calendar
    String的static方法
    Java中基本类型的包装类
    Java中的API
    Java里的参数类型/返回值类型
  • 原文地址:https://www.cnblogs.com/ylhssn/p/5162740.html
Copyright © 2011-2022 走看看