美文网首页
httpclient中关于BasicNameValuePair

httpclient中关于BasicNameValuePair

作者: JeniusYang | 来源:发表于2017-03-15 23:37 被阅读0次

    BasicNameValuePair实现了apache http的NameValuePair这个接口,关于接口NameValuePair的定义如下:

    public interface NameValuePair {
        String getName();
    
        String getValue();
    }
    

    可以发现该接口中声明了两个方法,返回值均为String,也就是在利用

    new BasicNameValuePair(String1,String2)
    

    进行参数传递时,只能使用String这种类型进行传递,事实上表单提交的get和post只能传递String类型,所以如何传递非String类型的参数,比如boolean,int。

    easy,在传递之前将对应的类型预先转成String就行了,为何这样可行呢,关键在于这一行

    httpPost.setEntity(new UrlEncodedFormEntity(params));
    

    这里放到http entity里面的类型都是字节类型,HTTP协议与FTP,SMTP类似都是通过plain-text ASCII来进行CS数据通信的(不像TCP使用二进制,有历史原因,也更加节约带宽和方便调试),实际上并不存在什么String,Boolean,Integer数据类型,都是通过将byte进行ASCII编码来实现的,服务器端反序列化成String类型后,通过springMVC的框架进行解析,注意这里也需要区分提交方式,框架可能会选取适当的httpMessageConverter进行解析(这个是服务器关注的事情了)

    相关文章

      网友评论

          本文标题:httpclient中关于BasicNameValuePair

          本文链接:https://www.haomeiwen.com/subject/bhciwttx.html