本文主要是介绍向指定服务器URL 发送POST方法的请求并用JSON表示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
内容:首先服务器返回的是JSON数组,但是利用URL读取后其实返回的都是String,所以我们还要转换为JSON数组,POST的传值是参考网上的。
public class HttpRequest {/*** 向指定 URL 发送POST方法的请求* * @param url* 发送请求的 URL* @param param* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String sendPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!"+e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result;} public static void main(String[] args) throws IOException {String sr = HttpRequest.sendPost("http://localhost:8088/teacherFreetime/load", "teacherId=1");System.out.println(sr);JSONArray array = new JSONArray(sr);int iSize = array.length();System.out.println("Size:" + iSize);for (int i = 0; i < iSize; i++) {JSONObject jsonObj = array.getJSONObject(i);System.out.println("[" + i + "]id = " + jsonObj.get("id"));System.out.println("[" + i + "]teacherId = " + jsonObj.get("teacherId"));System.out.println("[" + i + "]week = " + jsonObj.get("week"));System.out.println("[" + i + "]section = " + jsonObj.get("section"));System.out.println();}}
}
这篇关于向指定服务器URL 发送POST方法的请求并用JSON表示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!