关于HashMap与OkHttp的使用
创始人
2024-05-30 19:40:57
0

写了一个okhttp的post请求方法,添加参数很麻烦,需要封装:

//post请求public static void sendOkHttpRequestPost(String address , Callback callback) {OkHttpClient client = new OkHttpClient();// 创建表单参数RequestBodyRequestBody formBody = new FormBody.Builder()//.add("mac", "6C:8A:EC:03:FB:84")//.add("orderNum", "ZCS4228")//.add("model", "KK.RV22.801NT").add("mac", "02:00:00:00:00:00").build();// 创建POST请求Request request = new Request.Builder().url(address).post(formBody).build();// 发送异步请求client.newCall(request).enqueue(callback);}

可以用HashMap去填请求参数像这样:

 public static void sendOkHttpPost(String url, HashMap params, Callback callback){OkHttpClient client = new OkHttpClient();FormBody.Builder builder = new FormBody.Builder();for (String key : params.keySet()) {builder.add(key, params.get(key));}RequestBody requestBody = builder.build();Request request = new Request.Builder().url(url).post(requestBody).build();client.newCall(request).enqueue(callback);}

这样就封装好了一个方法,在每次调用的时候就可以直接把参数写到hashmap里了,方便很多:

HashMap params = new HashMap<>();params.put("mac", "02:00:00:00:00:00");OkHttpUtil.sendOkHttpPost(url1, params, new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.d(TAG, "测试.......网络请求shibai.........." +e);}@Overridepublic void onResponse(Call call, Response response) throws IOException {Log.d(TAG, "测试.......网络请求成功.........." + response.body().string());}});

HashMap的一些说明:

HashMap是Java中一种非常常用的数据结构,用于将键映射到值。在HTTP请求中,我们可以使用HashMap将请求参数封装为键值对的形式,方便地进行POST或GET请求。

一段示例:

HashMap params = new HashMap<>();
params.put("username", "user123");
params.put("password", "password123");MyOkHttpClient httpClient = new MyOkHttpClient();
httpClient.doPost("http://example.com/login", params, new Callback() {@Overridepublic void onFailure(Call call, IOException e) {// 请求失败的处理逻辑}@Overridepublic void onResponse(Call call, Response response) throws IOException {// 请求成功的处理逻辑}
});

在这个示例中,我们首先创建了一个HashMap对象params,并使用put方法向其中添加了两个键值对,分别表示用户名和密码。然后,我们实例化了MyOkHttpClient类,并调用了doPost方法,将请求参数和回调函数传递给了该方法。在这个示例中,我们使用了POST方法发送请求,并将参数封装为FormBody类型的请求体。
需要注意的是,键值对中的键和值应该与API的接口要求一致。此外,如果键值对中的值含有特殊字符,如空格、&、=等,需要进行URL编码处理。

keySet()方法
keySet()方法是Java中HashMap类的一个方法,用于获取HashMap中所有键的集合。该方法返回一个Set对象,其中包含了HashMap中所有键的集合。

下面是一个使用HashMap的keySet()方法的示例代码:

HashMap params = new HashMap<>();
params.put("username", "user123");
params.put("password", "password123");for (String key : params.keySet()) {System.out.println("Key: " + key + ", Value: " + params.get(key));
}

在这个示例中,我们首先创建了一个HashMap对象params,并使用put方法向其中添加了两个键值对,分别表示用户名和密码。然后,我们使用keySet()方法获取了params中所有键的集合,并通过for循环遍历该集合。在每次循环中,我们使用get方法获取了对应键的值,并输出了键和值的信息。
需要注意的是,在使用keySet()方法遍历HashMap时,键的顺序是不固定的,因为HashMap并不保证键的顺序。如果需要按照键的顺序遍历HashMap,可以使用LinkedHashMap,它可以保证键的顺序与添加顺序相同。

扩充
HashMap并不保证键值对的顺序,因此使用keySet()方法遍历HashMap时,键的顺序是不确定的。如果需要按照键的顺序遍历HashMap,可以使用LinkedHashMap,它可以保证键的顺序与添加顺序相同。

下面是一个使用LinkedHashMap遍历HashMap的示例代码:

LinkedHashMap map = new LinkedHashMap<>();
map.put("a", "A");
map.put("b", "B");
map.put("c", "C");for (String key : map.keySet()) {String value = map.get(key);System.out.println(key + " = " + value);
}

在这个示例中,我们首先创建了一个LinkedHashMap对象map,并使用put方法向其中添加了三个键值对,分别表示字母和它的大写形式。然后,我们使用keySet()方法获取了map中所有键的集合,并通过for循环遍历该集合。在每次循环中,我们使用get方法获取了对应键的值,并输出了键和值的信息。

需要注意的是,LinkedHashMap保证键值对的顺序与添加顺序相同,因此遍历时的顺序就是添加时的顺序。如果需要按照值的顺序遍历HashMap,可以使用values()方法获取所有值的集合,并进行排序后遍历。

相关内容

热门资讯

《王安石诗全集》(9)   《耿天骘惠梨次韵奉酬三首》  桐乡山远复川长,紫翠连城碧满隍。  今日桐乡谁爱我,当时我自爱桐乡...
莫言名言名句 莫言名言名句  导语:“思念一个人的滋味,就象是喝了一杯冰冷的水,然后一滴一滴凝成热泪。”下面是应届...
东指羲和能走马,海尘新生石山... “东指羲和能走马,海尘新生石山下。”出处 出自 唐代 李贺 的《天上谣》“东指羲和能走马,海尘新生石...
寻胡隐君古诗-寻胡隐君 高启 寻胡隐君古诗-寻胡隐君 高启寻胡隐君古诗,是一首无言绝句诗,主要借景色叙述作者的好心情。本文由unj...
描写知己的抒情诗句 描写知己的抒情诗句  1、婴其呜矣,求其友声。——《诗经·小雅》  2、四海皆兄弟,谁为行路人。——...
现代爱国诗词 现代爱国诗词(精选8首)  热爱自己的祖国,爱国体现了人们对自己祖国的深厚感情,爱国是公民应有的道德...
谁问旗亭,美酒斗十千 “谁问旗亭,美酒斗十千。”出处 出自 宋代 贺铸 的《行路难·缚虎手》“谁问旗亭,美酒斗十千。”全诗...
寄托相思亲人的诗句 寄托相思亲人的诗句  别离是淡苦的水,孤独是一匙咖啡,我把相思煮得浓浓,品你留下的芳味。  寄托相思...
描写夏天傍晚的诗句 描写夏天傍晚的诗句  夏天的夜晚是什么样的?关于描写夏天夜晚的诗句有哪些?以下是小编为大家整理的'描...
桂花的诗句 关于桂花的诗句关于桂花的'诗句1  1、秦吟宿楚泽,海酒落桂花。  2 、去去陵阳东,行行芳桂丛。 ...
古诗草白居易一年级 古诗草白居易一年级  对于小草我们都不陌生了,以下是小编整理的古诗草白居易一年级,欢迎阅读参考!  ...
李贺的诗马诗 李贺的诗马诗  李贺的《马诗》共二十三首,这是第一首。这首诗开头一个“龙”字写此马非比寻常,又有背脊...
情谊的诗句 有关情谊的诗句(精选120句)  中国最早的诗句为律诗结构,格律要求严格,比如先秦时期的诗一般每句四...
菩萨蛮,菩萨蛮韩淲,菩萨蛮的... 菩萨蛮,菩萨蛮韩淲,菩萨蛮的意思,菩萨蛮赏析 -诗词大全  菩萨蛮,菩萨蛮韩淲,菩萨蛮的意思,菩萨蛮...
小升初语文文学知识点整理   小升初语文文学常识整理(苏教版)  1.儒家两大代表人物是:孔丘和孟子  2.文章西汉两司马:司...
写春草春花的诗句 写春草春花的诗句  春花秋草,只是催人老,总把千山眉黛扫。下文是有关写春草春花的诗句,欢迎大家阅读与...
陈文龙与文天祥的长乐缘 陈文龙与文天祥的长乐缘  陈文龙(1232年~1276年),福建兴化(今福建莆田)人,南宋抗元名将。...
七夕浪漫诗句 2023年七夕浪漫诗句(精选160句)  在日常学习、工作和生活中,大家一定都接触过一些使用较为普遍...
熊猫作文 熊猫作文  二年级状物作文题目:我最爱的荔枝  我最喜欢吃的.水果是荔枝,说起荔枝,我想起了一句古诗...
侯以雷诗 侯以雷诗汇总  【放纵】放纵己之新魄味,奇妙文韵炫新魂。或许诱得知己君,史河妙炫诱后人。  【蠢蠢欲...