Java 如何实现POST(x-www-form-urlencoded)请求

这篇文章主要介绍了Java 实现POST(x-www-form-urlencoded)请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java POST(x-www-form-urlencoded)请求

平时都是喜欢用JSON,这种也是第一次。这两种的区别就是传递参数类型不一样。废话不多说,直接上代码

1、引入maven包

  commons-httpclientcommons-httpclient3.1

2、代码实现

 try { String postURL PostMethod postMethod = null; postMethod = new PostMethod(postURL) ; postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") ; //参数设置,需要注意的就是里边不能传NULL,要传空字符串 NameValuePair[] data = { new NameValuePair("startTime",""), new NameValuePair("endTime","") }; postMethod.setRequestBody(data); org.apache.commons.httpclient.HttpClient httpClient = new org.apache.commons.httpclient.HttpClient(); int response = httpClient.executeMethod(postMethod); // 执行POST方法 String result = postMethod.getResponseBodyAsString() ; return result; } catch (Exception e) { logger.info("请求异常"+e.getMessage(),e); throw new RuntimeException(e.getMessage()); } 

3、POSTMAN参数组装

使用post 请求x-www-form-urlencoded格式数据

代码如下:

 public String getMsg() { String result = ""; try { URL url = new URL("https://XXXX.cn/token"); //通过调用url.openConnection()来获得一个新的URLConnection对象,并且将其结果强制转换为HttpURLConnection. HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("POST"); //设置连接的超时值为30000毫秒,超时将抛出SocketTimeoutException异常 urlConnection.setConnectTimeout(30000); //设置读取的超时值为30000毫秒,超时将抛出SocketTimeoutException异常 urlConnection.setReadTimeout(30000); //将url连接用于输出,这样才能使用getOutputStream()。getOutputStream()返回的输出流用于传输数据 urlConnection.setDoOutput(true); //设置通用请求属性为默认浏览器编码类型 urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded"); //getOutputStream()返回的输出流,用于写入参数数据。 OutputStream outputStream = urlConnection.getOutputStream(); String content = "grant_type=password&app_key="+APP_KEY+"&app_secret="+APP_SECRET; outputStream.write(content.getBytes()); outputStream.flush(); outputStream.close(); //此时将调用接口方法。getInputStream()返回的输入流可以读取返回的数据。 InputStream inputStream = urlConnection.getInputStream(); byte[] data = new byte[1024]; StringBuilder sb = new StringBuilder(); //inputStream每次就会将读取1024个byte到data中,当inputSteam中没有数据时,inputStream.read(data)值为-1 while (inputStream.read(data) != -1) { String s = new String(data, Charset.forName("utf-8")); sb.append(s); } result = sb.toString(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } return result; }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是Java 如何实现POST(x-www-form-urlencoded)请求的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java