Android开发中
麻烦各位大佬帮忙编写HTTP_POST类的send(String ip,String poems)方法,参数为服务器地址(String ip)和请求内容(String poems),用post请求访问服务器,send方法的返回值为服务器响应内容。
要求:不使用任何框架。
参数实例:
服务器地址(String ip)如:"http://192.168.1.100:8000/"
请求内容(String poems)如:"?username=1234&password=123456"
权限已经打开,麻烦各位大佬给出详细代码(从导包开始)和详细注释

Android开发POST请求怎么使用?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
用系统api就行了
/** * POST请求 * * @param url url * @param map 请求参数的map集合形式 * @return */ public static String post(final String url, final Map<String, String> map) { final StringBuilder sb = new StringBuilder(); FutureTask<String> task = new FutureTask<String>(new Callable<String>() { @Override public String call() throws Exception { DataOutputStream out = null; BufferedReader br = null; URLConnection conn; URL posturl = new URL(url); try { conn = posturl.openConnection();//创建连接 conn.setDoInput(true);//post请求必须设置 conn.setDoOutput(true);//post请求必须设置 out = new DataOutputStream(conn .getOutputStream());//输出流 StringBuilder request = new StringBuilder(); for (String key : map.keySet()) { request.append(key + "=" + URLEncoder.encode(map.get(key), "UTF-8") + "&"); }//连接请求参数 out.writeBytes(request.toString());//输出流写入请求参数 out.flush(); out.close(); br = new BufferedReader(new InputStreamReader(conn.getInputStream()));//获取输入流 String line; while ((line = br.readLine()) != null) { sb.append(line); } System.out.println(sb.toString()); } catch (Exception e) { e.printStackTrace(); } finally {//执行流的关闭 if (br != null) { br.close(); } if (out != null) { out.close(); } } return sb.toString(); } }); String s = null; new Thread(task).start(); try { s = task.get();//异步获取返回值 } catch (Exception e) { e.printStackTrace(); } return s; } }
参考文章 :https://blog.csdn.net/tectrol/article/details/87348381
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报