当前位置: 移动技术网 > IT编程>开发语言>Java > java模拟post请求发送json的例子

java模拟post请求发送json的例子

2019年07月19日  | 移动技术网IT编程  | 我要评论

java模拟post请求发送json,用两种方式实现,第一种是httpurlconnection发送post请求,第二种是使用httpclient模拟post请求,

方法一:

package main.utils;

import java.io.*;
import java.net.httpurlconnection;
import java.net.url;

public class httputiltest {
  log log = new log(this.getclass());//初始化日志类
  /**
   * @作用 使用urlconnection
   * @param url
   * @param params
   * @return
   * @throws ioexception
   */
  public string sendpost(string url,string params)throws ioexception{
    outputstreamwriter out = null;
    bufferedreader reader = null;
    string response="";
    try {
      url httpurl = null; //http url类 用这个类来创建连接
      //创建url
      httpurl = new url(url);
      //建立连接
      httpurlconnection conn = (httpurlconnection) httpurl.openconnection();
      conn.setrequestmethod("post");
      conn.setrequestproperty("content-type", "application/json");
      conn.setrequestproperty("connection", "keep-alive");
      conn.setusecaches(false);//设置不要缓存
      conn.setinstancefollowredirects(true);
      conn.setdooutput(true);
      conn.setdoinput(true);
      conn.connect();
      //post请求
      out = new outputstreamwriter(
          conn.getoutputstream());
      out.write(params);
      out.flush();
      //读取响应
      reader = new bufferedreader(new inputstreamreader(
          conn.getinputstream()));
      string lines;
      while ((lines = reader.readline()) != null) {
        lines = new string(lines.getbytes(), "utf-8");
        response+=lines;
      }
      reader.close();
      // 断开连接
      conn.disconnect();

      log.info(response.tostring());
    } catch (exception e) {
    system.out.println("发送 post 请求出现异常!"+e);
    e.printstacktrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
    try{
      if(out!=null){
        out.close();
      }
      if(reader!=null){
        reader.close();
      }
    }
    catch(ioexception ex){
      ex.printstacktrace();
    }
  }

    return response;
  }
}

方法二:使用httpclient实现

import java.io.unsupportedencodingexception;
import java.net.urlencoder;

import main.utils.log;

import org.apache.http.client.methods.closeablehttpresponse;
import org.apache.http.client.methods.httppost;
import org.apache.http.entity.contenttype;
import org.apache.http.entity.stringentity;
import org.apache.http.impl.client.closeablehttpclient;
import org.apache.http.impl.client.httpclients;
import org.apache.http.util.entityutils;

//post请求方法
  public string sendpost(string url, string data) {
    string response = null;
    log.info("url: " + url);
    log.info("request: " + data);
    try {
      closeablehttpclient httpclient = null;
      closeablehttpresponse httpresponse = null;
      try {
        httpclient = httpclients.createdefault();
        httppost httppost = new httppost(url);
        stringentity stringentity = new stringentity(data,
            contenttype.create("text/json", "utf-8"));
        httppost.setentity(stringentity);
        httpresponse = httpclient.execute(httppost);
        response = entityutils
            .tostring(httpresponse.getentity());
        log.info("response: " + response);
      } finally {
        if (httpclient != null) {
          httpclient.close();
        }
        if (httpresponse != null) {
          httpresponse.close();
        }
      }
    } catch (exception e) {
      e.printstacktrace();
    }
    return response;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网