精华内容
下载资源
问答
  • 通过ajax给springMVC传递参数时,通过post方法传递json字符串时常用的方式,这时后端应该通过@RequestBody注解配合springMVC中配置的消息转换器来进行json字符串的解析。 因为post方法中的json字符串通常是一个前端...

    通过ajax给springMVC传递参数时,通过post方法传递json字符串时常用的方式,这时后端应该通过@RequestBody注解配合springMVC中配置的消息转换器来进行json字符串的解析。

    因为post方法中的json字符串通常是一个前端的json对象转化而成的字符串,所以后端@RequestBody后面可以使用HashMap<String,Object>类型来接收所有参数。

    通过这种方式可以非显式的传送大量的参数到后端,并且和具体参数无关,便于以后对参数进行扩展,对于不确定参数的场合,这种方式解除了与具体参数的耦合。但是由于简单的过程实际上经历了许多SpringMVC的操作,所以经常会遇到各种奇怪问题。

    其中post方法请求体中的json字符串无法成功通过SpringMVC中配置的MessageConverter(一般是MappingJackson2HttpMessageConverter)转换为@RequestBody注解的HashMap对象,是可以见到的问题。

    这个时候你可以检查下ajax请求的content-type请求头,因为在配置MessageConverter消息转换器的时候,需要配置其所检查的请求体类型(content-type),默认情况下浏览器的ajax会添加content-type:application/x-www-form-urlencoded的请求头,但是有的浏览器或者有些时候会发送content-type:application/x-www-form-urlencoded;charset:utf-8到后端,导致MappingJackson2HttpMessageConverter漏过对它的检查,这个时候SpringMVC会使用其他的MessageConverter来解析request body中的内容,这样肯定是会解析失败的。

    如果遇到这种情况,比较好的解决方式,可能是在ajax的post请求中强制注明 contentType:application/json,并将application/json 和application/json;charset=utf-8两种MediaType(MimeType)添加到MappingJackson2HttpMessageConverter对象的检查列表中。这样就可以保证post方法的请求体中的json字符串被MappingJackson2HttpMessageConverter对象检查并解析。

    展开全文
  • 而项目用的还是一直沿用之前的retrofit+rxjava的旧框架,rxjava和rxjava2无法共存所以报错,在将框架全部更新后发现之前上传图片加参数的方法出现了问题 后台接口要求的是修改头像是要传一个token,一般上传不...

    我在写图片选择时用户要求可以多张选择,可是之前的图片工具类只能单张选择,恰好在github上找到了rxgalleryfinal这个库,就想拿来用一下,没想到studio一直报重复导入的问题,查询半天发现了问题所在,rxgalleryfinal内部用的是retrofit2+rxjava2的网络框架,而项目用的还是一直沿用之前的retrofit+rxjava的旧框架,rxjava和rxjava2无法共存所以报错,在将框架全部更新后发现之前上传图片加参数的方法出现了问题


    后台接口要求的是修改头像是要传一个token,一般上传不穿即可


    之前因为是rxjava1所以用的都是observable,换成rxjava后使用可以解决背压问题的flowable,retrofit注解只能使用一个,用了@multipart注解后就不能再添加表单注解,所以查了下网上给出的方法是讲@Field替换为@Part,如下代码

    这是retrofit实现类中的接口

       //上传图片
        @POST("user/upload")
        @Multipart
        Flowable<BaseResponse<List<String>>> upload(@Part("token") String token,
                                                    @Part MultipartBody.Part part);

    接口实现类中的方法

    @Override
        public Flowable<BaseResponse<List<String>>> upload(String token, String path) {
            File file = new File(path);
            RequestBody photoRequestBody = RequestBody.create(MediaType.parse("image/jpg"), file);
            MultipartBody.Part photoPart = MultipartBody.Part.createFormData("file", file.getName(), photoRequestBody);
            return api.upload(token, photoPart);
        }

    这种方法传token是错误的,应该在上传图片时将token封到

    MultipartBody.Builder
    如下代码,或者将上面的@Part("token) String token改为 @Part("token)   RequestBody token即可

    代码中将token添加到requestbody中

    RequestBody tokenBody = RequestBody.create(MediaType.parse("text/plain"), token); 


    以下代码适用多张图片上传,循环添加到builder中即可

     //上传图片
        @POST("user/upload")
        @Multipart
        Flowable<BaseResponse<List<String>>> upload(@Part List<MultipartBody.Part> parts);

      @Override
        public Flowable<BaseResponse<List<String>>> upload(String token, String path) {
            File file = new File(path);
            MultipartBody.Builder builder = new MultipartBody.Builder()
                    .setType(MultipartBody.FORM)//表单类型
                    .addFormDataPart("token", token);
            RequestBody photoRequestBody = RequestBody.create(MediaType.parse("image/jpg"), file);
            builder.addFormDataPart("file", file.getName(), photoRequestBody);
            List<MultipartBody.Part> parts = builder.build().parts();
            return api.upload(parts);
        }


    单张图片上传传参时去掉List,如果加参数则添加到requestbody中再上传


    参考文章:http://blog.csdn.net/itjianghuxiaoxiong/article/details/52135748


    展开全文
  • 一般而言,get请求是有参数长度限制的,但是post请求没有参数长度限制。但是在实际使用过程中发现ajax请求参数在超过几万个字符之后,在获取java通过getParameter获取参数时,往往数据变成了空值(null),如果是...

    一般而言,get请求是有参数长度限制的,但是post请求没有参数长度限制。但是在实际使用过程中发现ajax请求参数在超过几万个字符之后,在获取java通过getParameter获取参数时,往往数据变成了空值(null),如果是使用spring mvc控制器的话,就会直接抛出异常。经过多次实践之后发现,在ajax post请求参数过长的时候,实际请求到的header中参数格式为“参数名=url编码参数值”,这个时候的一个参考解决方案是通过流形式,自动解析参数,参考代码如下:


    @ResponseBody
    @RequestMapping(value = "/createMap")
    public String createpicture(
    /*@RequestParam("editrow") String strEditRow,*/
    HttpServletRequest request,
    HttpServletResponse response) throws IOException {
    String strEditRow=getRequestContentParam(request);

     
    return ccp.createPicture(strEditRow,response,childTable);
    }

    public static String getRequestContentParam(HttpServletRequest request) throws IOException{
    String strEditRow="";
    request.setCharacterEncoding("utf-8");  
       StringBuilder sb = new StringBuilder();
       BufferedReader reader = request.getReader();
       char[] buff = new char[1024];
       int len;
        while((len = reader.read(buff)) != -1) {
           sb.append(buff,0, len);
           }
        String content =sb.toString();
        if(StringUtil.IsNotNullOrEmpty(content) && content.startsWith("editrow=")){
        content=content.substring(8);
        }
        String ENCODE = "UTF-8"; 
        strEditRow = java.net.URLDecoder.decode(content, ENCODE);
        
        System.out.println(strEditRow);
        return strEditRow;
    }

    展开全文
  • ORA-01078: 处理系统参数失败

    千次阅读 2011-03-15 21:52:00
    ORA-01078: 处理系统参数失败 解决方法如下: 改pfile文件中参数*.local_listener 修改之前: *.local_listener='LISTENER_TEST' 修改之后: *.local_listener='LISTENER2TEST' 改为这个值是参考listener.ora文件中...

    SQL> startup nomount pfile='c:pfile.ora';
    ORA-00119: invalid specification for system parameter LOCAL_LISTENER
    ORA-00132: syntax error or unresolved network name 'LISTENER2TEST'
    ORA-01078: 处理系统参数失败

    解决方法如下:

    改pfile文件中参数*.local_listener

    修改之前:

    *.local_listener='LISTENER_TEST'

    修改之后:

    *.local_listener='LISTENER2TEST'

    改为这个值是参考listener.ora文件中的配置信息:

    SID_LIST_LISTENER2TEST =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = f:oracleproduct10.2.0db_1)
    (PROGRAM = extproc)
    )
    )

    LISTENER2TEST =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = win10g)(PORT = 1541))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    )

    修改之后系统正常启动:

    SQL> startup pfile='c:pfile.ora'
    ORACLE 例程已经启动。

    Total System Global Area 188743680 bytes
    Fixed Size 1247996 bytes
    Variable Size 67110148 bytes
    Database Buffers 113246208 bytes
    Redo Buffers 7139328 bytes
    数据库装载完毕。
    数据库已经打开。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aicon/archive/2009/10/12/4659086.aspx

    [@more@]

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22934571/viewspace-1047318/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/22934571/viewspace-1047318/

    展开全文
  • 使用navigateTo()这种方法传对象,在跳转到的页面内打印传递参数,会发现得到的数据并不是想要的。如: 1、跳转 // 详情 myInInfoClick(obj) { // this.dataItem = obj; uni.navigateTo({ url: './...
  • 但是这个看起来很简单的函数,今天在传递参数的时候出现了问题。下面我给大家说一下。 下面四句代码,乍一看好像都一样没什么问题,但是实际上,只有 2、3 两句代码是正确的。(笔者已经测试了IE和火狐都是这样的)...
  • 其中有一个 get 请求的接口,最开始时使用 json 传递参数并用 @RequestBody 进行参数接收。但是使用这种方式是 FeignClient 调用会在服务提供端产生 Required request body is missing 的错误。 在将请求参数改为...
  • springMVC参数绑定失败原因

    千次阅读 2017-08-04 11:29:44
    springMVC参数绑定失败的原因有以下2种1.form表单文件上传设置enctype=”multipart/form-data”时会导致参数绑定失败。 解决方法: 需要在mvc配置文件中进行如下配置<!-- 文件上传 --> class="org.spring...
  • angularjs $stateParams 获取参数失败

    千次阅读 2016-11-18 13:44:56
    今天在开发的过程中,发现$stateParams 无法获取控制器传递过来的参数,代码内容正确,但是就是目标页面$stateParams 对象为空。 问题原因: 在状态控制器中,$stateParams对象只包含那些在状态中定义的参数,因此...
  • swagger2 隐藏请求参数失败问题

    万次阅读 2018-01-11 09:47:51
    我需要将某个定义的参数隐藏(不想在api文档中展示),资料通过可以知道,注解@ApiModelProperty 和@ApiParam 里面都有一个属性叫做hidden,当时很兴奋(马上将这个属性设置为了true),然后又很郁闷(我日,不...
  • Delphi代码 创建带参数的进程的代码 var si:STARTUPINFO; pi:PROCESS_INFORMATION; tp:string; exepathname:string; param1:string; ... ZeroMemory(@si,sizeof(STARTUPINFO)); si.cb:=sizeof(ST
  • 原因是HTTP信息头管理器中没有配置content-type,如下图配置后,参数接收正常
  • 请求接口参数正确请求失败的问题

    千次阅读 2019-08-12 16:48:57
    1,当调用远程接口进行网络通信时,报如下错误: W/System.err: java.net.UnknownServiceException: CLEARTEXT communication to 10.240.35.113 not permitted by network security policy 这...
  • append后面跟要添加的参数 上面这段代码如果有append添加的话,调用ajax返回参数添加参数到onclick中就会出现数据不能显示,整个js模块失效的情况,原因是onclick参数中如果包含整数又包含字符串的话,必须要给...
  • angular的ajax请求真的是太坑了,只要涉及到发送参数的就有问题,会报500,即使你传对了参数,后台也接收不到,这个问题其实不是后台的问题, 而是因为angular的请求方法中,涉及到传参的时候,angular并没有处理...
  • <!--apache lang3--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version>...
  • 最近在做微信开放平台,发现微信回调之后会把原来的url中的“=”转义为%3D ,导致在request.getparameter()中获取的时候,获取不到参数的值,获取到的为null,怎么问题怎么解决呢?
  • 最近使用retrofit上传文件和参数时发现上传直接失败,于是查询各种资料发现是因为retrofit上传文件时底层限制问题,可是换作另外方法上传就可以了,记录下; 一,服务器让传递的参数和内容 二,retrofit接口内容@...
  • 海康威视SDK二次开发通过云台参数设置控制摄像机的位置 由于最近在开发海康威视摄像头,特此记录一下通过云台参数控制摄像机的位置,我这里是通过properties配置文件输入的参数,也可以不用配置文件,看具体的需求 注:...
  • 通过@FeignClient注解调用微服务接口,若接口路径参数不传入,会导致接口调用失败 举个例子,如下接口 如图1-1: 图1-1 接口详情 查看该接口的源码,如图1-2: 图1-2接口源码 接口路径当中有{...
  • ARouter 传值失败

    千次阅读 2019-09-18 14:49:12
    参考:ARouter withDouble 传值失败问题 发送 ARouter.getInstance() .build(BizApi.PATH_DETAIL_APPROVAL) .withLong("lot_number", rowsBean.getLotNumber()) .withString("approval_note", rowsBean...
  • 调用微信接口,需要传xml格式的参数,可以使用**WXPayUtil.generateSignedXml(param, partnerkey)**方法将HashMap类型的参数转换为xml类型,顺便将传入的参数按,秘钥加密封装进一个签名,调用该方法得出的参数就是...
  • 【Linux】shell脚本参数传递

    千次阅读 2020-10-12 13:20:03
    方式一、$0,$1,$2... 采用$0,$1,$2..等方式获取脚本命令行传入的参数 $0:脚本名称 $1....: 参数 例子: ... echo "参数0参数为:"$0 echo "参数1参数为:"$1 ... 参数1参数为:我是参数1 参数2参数为:我是参
  • index.jsp中构造param: function hello() { alert("hello"); var mydata = [{"word" : "12345"}];...而且,在firfox浏览器的控制台界面,看到传输的参数是:[{"word" : "12345"}]: 请问各位大神,这是什么情况?
  • feign参数过多导致调用失败

    千次阅读 2021-07-15 14:44:22
    通过feign去调用其他服务的时候报上面的错误了,当传入的参数比较少的时候并没有错误,但是传入参数一多就自动走hystrix熔断器了。 通过层层排查,报这个错误的原因是因为: JSON 解析错误:非法字符((CTRL-CHAR,...
  • 使用qs库来格式化数据 npm install qs --save 在main.js中,我们引入qs库 // post请求是格式化数据 import qs from 'qs'; Vue.prototype.$qs = qs; 进行post请求 this.$axios ...,...
  • 根据业务需求需要在满足条件的post请求前,做一些处理,因此想到用 HandlerInterceptor 来拦截请求以做进一步处理,便如图所示获取参数 但是,这种获取参数的形式可以获取表单形式(header),是拿不到参数为json...
  • 海康预览组件加载失败

    千次阅读 2019-06-18 12:43:57
    组件库没有正常加载。 更新官网最新SDK时,设备网络SDK开发包【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夹等文件均要加载到程序里面,HCNetSDKCom...
  • 参数错误有四种情况: 1、url地址错误,检查地址前后是否有空格。 2、token错误,检查token口令是否正确,同时检查空格问题。 3、url地址被微信屏蔽,确诊方法是将地址复制到手机微信,然后点击访问。如果不能...
  • Spring boot 项目在启动的时候 要设置VM参数(环境变量),idea 启动没有问题,通过java -jar 启动就无法读取参数错误的写法: java -jar demo-service-vl-app-0.0.1-SNAPSHOT.jar -Denv=test -Dtest_meta=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,282,408
精华内容 512,963
关键字:

参数失败