今天搞代码的时候,遇到一个叫做 NameValuePair 的小东西,以前没怎么仔细弄过,就想着记录一下,以后再遇到也算是有个底。
我是从哪儿看到这玩意的?对,是在写一个用 Java 向某个网址发送 Post 请求的功能。你知道的,就是那种提交表单数据之类的操作。以前都是直接把数据拼成一个字符串,然后一股脑塞进去,简单粗暴。
这回,我想搞得稍微“专业”一点。于是我就去网上搜,看看有没有什么更好的办法。搜来搜去,就发现这个 NameValuePair。这名字听起来就挺形象的,"名字-值"对,不就是用来存那些参数的嘛
然后我就开始研究怎么用。得创建一个列表(List)来存放这些“名字-值”对。代码大概长这样:
List<NameValuePair> params = new ArrayList<NameValuePair>();
这里有个小细节,就是这个 List 里面,放的都是 NameValuePair 类型的数据。就像你有一个盒子,专门用来放苹果,不能把香蕉也塞进去。
有这个列表,接下来就是往里面添加参数。每个参数都是一个 NameValuePair 对象。创建这个对象也很简单:

NameValuePair param1 = new BasicNameValuePair("username", "xiaoming");
NameValuePair param2 = new BasicNameValuePair("password", "123456");
看到没,第一个参数是“名字”(比如这里的 "username" 和 "password"),第二个参数是对应的“值”(比如 "xiaoming" 和 "123456")。就像你填表单的时候,每个输入框都有一个名字,然后你要在里面填上对应的内容。
把这些“名字-值”对都创建好之后,就把它们一个个添加到刚才创建的列表里:
*(param1);
*(param2);
这样,所有的参数就都整整齐齐地排列在这个列表里。就可以用这个列表去发送 Post 请求。具体怎么发送,我就不在这里细说,反正就是把这个列表交给负责发送请求的那个家伙就行。
这个 NameValuePair 用起来还是挺方便的。它把参数一个个打包看起来更清晰,也更方便管理。以后再遇到类似的需求,我就知道该怎么做!