精华内容
下载资源
问答
  • 最近在开发的时候发现了一个需求,...java代码实现post请求1. 搭建springboot环境1.1 pom.xml的配置org.apache.httpcomponentshttpclient4.5.101.2 test POST方法实现@RunWith(SpringRunner.class)@SpringBootTes...

    最近在开发的时候发现了一个需求,就是要使用post请求去请求其他项目的接口,并且还需要带参。所以就研究了一下。

    java代码实现post请求

    1. 搭建springboot环境

    1.1 pom.xml的配置

    org.apache.httpcomponents

    httpclient

    4.5.10

    1.2 test POST方法实现

    @RunWith(SpringRunner.class)

    @SpringBootTest

    public class TbFreshScoreInfoEdgeTest {

    @Test

    public void httpPostRequest(){

    //这里根据自己的需要进行数据的填充

    String url = "http://IP地址+方法";

    HttpClient client = HttpClients.createDefault();

    //默认post请求

    HttpPost post = new HttpPost(url);

    //拼接多参数

    JSONObject json = new JSONObject();

    json.put("projectId", "1");

    json.put("imageName", "2");

    json.put("rowId", 3);

    json.put("totalVoidArea", 4);

    json.put("rowArea", 5);

    json.put("voidRadio", 6.0);

    json.put("minusScore", 7);

    json.put("updateTime", new Date());

    String message = "[" + json + "]";

    try {

    post.addHeader("Content-type", "application/json; charset=utf-8");

    post.setHeader("Accept", "application/json");

    post.setEntity(new StringEntity(message, StandardCharsets.UTF_8));

    HttpResponse httpResponse = client.execute(post);

    HttpEntity entity = httpResponse.getEntity();

    System.err.println("状态:" + httpResponse.getStatusLine());

    System.err.println("参数:" + EntityUtils.toString(entity));

    } catch (IOException e1) {

    e1.printStackTrace();

    }

    }

    }

    1.3 test GET方法实现

    public void httpGetRequest() {

    String url = "http://IP地址+方法+参数";

    try {

    HttpClient client = HttpClients.createDefault();

    HttpGet httpGet = new HttpGet(url);

    BasicResponseHandler responseHandler = new BasicResponseHandler();

    System.err.println("参数:" + client.execute(httpGet, responseHandler));

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    方法就这些,参考了网上的一些资料。

    作者:周兆东

    展开全文
  • java发送post请求代码

    千次阅读 2016-03-03 15:08:30
    public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL
    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;
        }  

    展开全文
  • Java发送post请求的实例代码分享package com.ddtech.app.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;...

    Java发送post请求的实例代码分享package com.ddtech.app.util;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import java.io.PrintWriter;

    import java.net.URL;

    import java.net.URLConnection;

    import java.util.List;

    import java.util.Map;

    import com.alibaba.fastjson.JSONObject;

    public class HttpRequestGetAndPost {

    /**

    * 向指定URL发送GET方法的请求

    *

    * @param url

    * 发送请求的URL

    * @param param

    * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

    * @return URL 所代表远程资源的响应结果

    */

    public static String sendGet(String url, String param) {

    String result = "";

    BufferedReader in = null;

    try {

    String urlNameString = url + "?" + param;

    URL realUrl = new URL(urlNameString);

    // 打开和URL之间的连接

    URLConnection connection = realUrl.openConnection();

    // 设置通用的请求属性

    connection.setRequestProperty("accept", "*/*");

    connection.setRequestProperty("connection", "Keep-Alive");

    connection.setRequestProperty("user-agent",

    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

    // 建立实际的连接

    connection.connect();

    // 获取所有响应头字段

    Map> map = connection.getHeaderFields();

    // 遍历所有的响应头字段

    for (String key : map.keySet()) {

    System.out.println(key + "--->" + map.get(key));

    }

    // 定义 BufferedReader输入流来读取URL的响应

    in = new BufferedReader(new InputStreamReader(

    connection.getInputStream()));

    String line;

    while ((line = in.readLine()) != null) {

    result += line;

    }

    } catch (Exception e) {

    System.out.println("发送GET请求出现异常!" + e);

    e.printStackTrace();

    }

    // 使用finally块来关闭输入流

    finally {

    try {

    if (in != null) {

    in.close();

    }

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    return result;

    }

    /**

    * 向指定 URL 发送POST方法的请求

    *

    * @param url

    * 发送请求的 URL

    * @param param

    * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

    * @return 所代表远程资源的响应结果

    */

    public static String sendPost(String url, JSONObject 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;

    }

    }

    展开全文
  • 这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为text/plain模式才导致读取不到数据urlConn.setRequestProperty(...

    这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为text/plain模式才导致读取不到数据

    urlConn.setRequestProperty("Content-Type","text/plain; charset=utf-8");

    若设置为以下方式,则通过request.getParameter()可以读取到数据

    urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

    enctype的三种编码

    form表单中enctype属性可以用来控制对表单数据的发送前的如何进行编码,即在发送到服务器之前,所有字符都会进行编码(空格转换为"+"加号,特殊符号转换为ASCIIHEX值)。默认是application/x-www-form-urlencoded。

    multipart/form-data用于发送二进制的文件,其他两种类型不能用于发送文件

    text/plain用于发送纯文本内容,不对特殊字符进行编码,一般用于email之类的。

    application/x-www-form-urlencoded和text/plain的区别简单讲就是一个发送html内容,一个发送纯文本内容

    application/x-www-form-urlencoded在发送前编码所有字符(默认)

    multipart/form-data不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

    text/plain空格转换为"+"加号,但不对特殊字符编码。

    当定义enctype为application/x-www-form-urlencoded时,使用以下方式接收数据

    request.getParameter(参数名);

    当定义enctype为text/plain时,使用以下方式接收数据

    // 接收请求数据

    BufferedReader reader = request.getReader();

    char[] buf = new char[512];

    int len = 0;

    StringBuffer contentBuffer = new StringBuffer();

    while ((len = reader.read(buf)) != -1) {

    contentBuffer.append(buf, 0, len);

    }

    String content = contentBuffer.toString();

    if(content == null){

    content = "";

    }

    post与get

    tp请求在所有的编程语言中几乎都是支持的,我们常用的两种为:GET,POST请求。一般情况下,发送一个GET请求都很简单,因为参数直接放在请求的URL上,对于POST请求,由于其数据是在消息体中发送出去的,所以相对来说要麻烦一点,再涉及到需要发送文件等二进制的数据类型,就更需要更多的处理。

    post和get可以通过键值对的方式进行参数传输,服务端通过request.getparameter方式进行请求获取数据。

    客户端post数据到服务端,服务端接收处理

    public class UrlConnection {

    @SuppressWarnings("finally")

    public static Boolean response(String url,String content) {

    String line = "";

    String message = "";

    String returnData = "";

    Boolean postState = false;

    BufferedReader bufferedReader = null;

    try {

    URL urlObject = new URL(url);

    HttpURLConnection urlConn = (HttpURLConnection) urlObject.openConnection();

    urlConn.setDoOutput(true);

    /*设定禁用缓存*/

    urlConn.setRequestProperty("Pragma:", "no-cache");

    urlConn.setRequestProperty("Cache-Control", "no-cache");

    /*维持长连接*/

    urlConn.setRequestProperty("Connection", "Keep-Alive");

    /*设置字符集*/

    urlConn.setRequestProperty("Charset", "UTF-8");

    /*设定输出格式为json*/

    urlConn.setRequestProperty("Content-Type", "application/json;charset=utf-8");

    /*设置使用POST的方式发送*/

    urlConn.setRequestMethod("POST");

    /*设置不使用缓存*/

    urlConn.setUseCaches(false);

    /*设置容许输出*/

    urlConn.setDoOutput(true);

    /*设置容许输入*/

    urlConn.setDoInput(true);

    urlConn.connect();

    OutputStreamWriter outStreamWriter = new OutputStreamWriter(urlConn.getOutputStream(),"UTF-8");

    outStreamWriter.write(content);

    outStreamWriter.flush();

    outStreamWriter.close();

    /*若post失败*/

    if((urlConn.getResponseCode() != 200)){

    returnData = "{\"jsonStrStatus\":0,\"processResults\":[]}";

    message = "发送POST失败!"+ "code="+urlConn.getResponseCode() + "," + "失败消息:"+ urlConn.getResponseMessage();

    // 定义BufferedReader输入流来读取URL的响应

    InputStream errorStream = urlConn.getErrorStream();

    if(errorStream != null)

    {

    InputStreamReader inputStreamReader = new InputStreamReader(errorStream,"utf-8");

    bufferedReader = new BufferedReader(inputStreamReader);

    while ((line = bufferedReader.readLine()) != null) {

    message += line;

    }

    inputStreamReader.close();

    }

    errorStream.close();

    System.out.println("发送失败!错误信息为:"+message);

    } else{

    /*发送成功返回发送成功状态*/

    postState = true;

    // 定义BufferedReader输入流来读取URL的响应

    InputStream inputStream = urlConn.getInputStream();

    InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"utf-8");

    bufferedReader = new BufferedReader(inputStreamReader);

    while ((line = bufferedReader.readLine()) != null) {

    message += line;

    }

    returnData = message;

    inputStream.close();

    inputStreamReader.close();

    System.out.println("发送POST成功!返回内容为:" + message);

    }

    }

    catch (Exception e) {

    e.printStackTrace();

    }

    finally{

    try {

    if (bufferedReader != null) {

    bufferedReader.close();

    }

    }

    catch (IOException ex) {

    ex.printStackTrace();

    }

    return postState;

    }

    }

    /*读取request数据*/

    public static String getRequestData(HttpServletRequest request) throws IOException{

    BufferedReader reader = request.getReader();

    char[] buf = new char[512];

    int len = 0;

    StringBuffer contentBuffer = new StringBuffer();

    while ((len = reader.read(buf)) != -1) {

    contentBuffer.append(buf, 0, len);

    }

    String content = contentBuffer.toString();

    if(content == null){

    content = "";

    }

    return content;

    }

    }

    总结

    以上就是本文关于Java编程Post数据请求和接收代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

    java线程间通信的通俗解释及代码示例

    Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详解

    Java多线程编程实现socket通信示例代码

    如有不足之处,欢迎留言指出。

    展开全文
  • import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.HttpURLC...
  • 主要介绍了Java编程Post数据请求和接收代码详解,涉及enctype的三种编码,post与get等相关内容,具有一定参考价值,需要的朋友可以了解下。
  • 搜索热词下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java...
  • import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.Map;import org.apach...
  • Java编程Post数据请求和接收代码详解这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为text/plain模式才导致读取不...
  • 23 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStreamReader;6 importjava.nio.charset.Charset;78 importorg.apache.http.HttpEntity;9 importorg.ap...
  • import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.OutputSt...
  • 这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为text/plain模式才导致读取不到数据urlConn.setRequestProperty(...
  • Java代码发送POST请求

    千次阅读 2016-10-21 17:17:19
    首先写一个方法,用于接收POST请求 public static String httpPost(String url, List list) { log.info("the request info for url = {} is: {}", url); // 创建默认的httpClient实例. CloseableHttpClient htt
  • 一、创建一个servlet来接收get或post请求packageguwen;importjava.io.IOException;importjava.io.InputStream;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet....
  • import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.H...
  • //JSONObject object=JSON.parseObject(JSON.toJSONString(map)) String postValue = sendPost(url, param,8*1000,10*1000, Charset.forName("utf-8")); System.out.println(postValue); } public static String ...
  • 下面小编就为大家带来一篇java发送http的get、post请求实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • //首先下面我我们需要导入的jar包和文件import java.io.IOException; import java.util.ArrayList; import java.util.List;import org.apache.http.Consts;import org.apache.http.NameValuePair;import org...
  • 微信商务平台 p12证书调用java代码 lib包请从微信商务平台下载demo post请求
  • import java.io.IOException; import java.util.Base64; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache....
  • import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.Map;import org.apach...
  • import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.H...
  • 这篇也是接上一篇,发送请求的url就是前面创建的java web工程中有的。1、HTTP中GET和POST的区别首先要了解下GET和POST的区别。HTTP定义了4种与服务器交互方法:GET,POST,PUT,DELETE。URL全称是资源描述符,可以...
  • JAVA httpClient post请求及接收示例代码

    千次阅读 2018-03-28 17:16:10
    1、java原生httpClient4.5 post请求 import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org....
  • 243) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:679) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:597) at java.lang.Thread.run...
  • import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.H...
  • 一个GetPost请求java代码 import org.apache.commons.lang3.StringUtils; import org.springframework.util.StreamUtils; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import...
  • importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.UnsupportedEncodingExc...
  • 下面小编就为大家带来一篇java 发送带Basic Auth认证的http post请求实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java httpcomponents发送get post请求代码实例发布时间:2020-09-28 03:08:01来源:脚本之家阅读:64作者:贾树丙引入的包为:org.apache.httpcomponentshttpclient4.5.8实现的工具类为:import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,290
精华内容 916
关键字:

java请求post代码

java 订阅