# 目录 [TOC] 这里要说明的是NoHttp除了提交自定义`Body`外,其它提交任何数据都是以`Request#add(key, value)`的形式添加到`Request`的,这是NoHttp为了方便开发者故意这么设计的。而且NoHttp提供了`Request#add(Map)`这样的方法添加参数,还有其它小惊喜等待你去挖掘。 ## add()方法的特点说明 注意:NoHttp添加多个相同key的参数,不会被覆盖,会全部发送到服务器,但是允许在添加后通过`Request#set(String...)`覆盖这个key下所有的参数,也可以通过`Request#remove(String)`移除这个key下的所有参数。 ## GET提交普通参数 Http GET发送请求的时候,最终参数都会以`url?key=value&key1=value1`这样的形式拼接在url末尾。 例如: * url: `http://api.nohttp.net/upload?id=123&name=yanzhenjie&desc=abc` * method: `GET` 用NoHttp的时候你不用拼接参数,如下写即可: ```java String url = "http://api.nohttp.net/upload"; Request<String> request = new StringRequest(url); request.add("id", 123) .add("name", "yanzhenjie") .add("desc", "abc"); ``` 就是这么简单,剩下的事情`NoHttp`会自动完成。 ## POST提交普通参数 Http POST发送请求的时候,不像GET一样,POST的url最终不会变的,参数也不会拼接到url后面,它的参数会拼接成`key=value&key1=value`的形式用流写出去,也就是说它的参数是以body的形式发送的。 例如: * ur: `http://api.nohttp.net/upload` * method `POST` * params: `name=yanzhenjie&pwd=12345` 这些参数用nohttp这样写: ```java String url = "http://api.nohttp.net/upload"; Request<String> request = new StringRequest(url, RequestMethod.POST) .add("id", 123) .add("name", "yanzhenjie") .add("desc", "abc"); ``` 和GET没什么需别,唯一的区别的就是指定了请求方法为POST。其它类似POST的请求,比如PUT、PATCH、DELETE等方法都是如此。 **推荐阅读** [请求各种类型的数据](http://doc.nohttp.net/222384) [自定义请求JavaBean](http://doc.nohttp.net/222884)