问题: 使用Alamofire 登录请求数据正常。 其它接口需要添加token验证,java后台一直获取不到传的参数。

分析并解决问题

一.首先排查是不是服务器的问题,使用postman发送请求,可以正常获取。

二.检查Alamofire网络请求的代码。有两个需要注意的地方

   encoding

(1)JSONEncoding.default 是放在HttpBody内的, 比如post请求
(2)URLEncoding.defaultGET中是拼接地址的, 比如get请求
(3)URLEncoding(destination: .methodDependent) 是自定义的URLEncodingmethodDependent的值如果是在GETHEADDELETE中就是拼接地址的。其他方法方式是放在httpBody内的。
(4)URLEncoding(destination: .httpbody)是放在httpbody内的

Accept和Content-Type
     accept表示 客服端(浏览器,APP)支持的类型,也是希望服务器响应发送回来的的数据类型。

     例如:Accept:text/xml; ,也就是希望服务器响应发送回来的是xml文本格式的内容

     区别:

       1.Accept属于请求头, Content-Type属于实体头。 
         Http报头分为通用报头,请求报头,响应报头和实体报头。 
         请求方的http报头结构:通用报头|请求报头|实体报头 
         响应方的http报头结构:通用报头|响应报头|实体报头

        2.Accept代表发送端(客户端)希望接受的数据类型。 
           比如:Accept:text/xml
          代表客户端希望接受的数据类型是xml类型

          Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。 
          比如:Content-Type:text/html; 
          代表发送端发送的数据格式是html。

           二者合起来, 
              Accept:text/xml; 
              Content-Type:text/html 
              即代表客户端希望接受的数据类型是xml格式,本次客户端请求发送的数据的数据格式是html。

三 , 解决问题

请求头中添加"Accept" :  "application/json", 后台可以正常获取参数

              

 

posted on 2022-04-22 11:01  代码少年_夕阳  阅读(261)  评论(0编辑  收藏  举报