java 代码:
package com.zkhc.server.modular.system.utils;
import cn.stylefeng.roses.core.reqres.response.SuccessResponseData;
import com.alibaba.fastjson.JSONObject;
import jdk.nashorn.internal.runtime.logging.Logger;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class http_utils {
/**
* http post 请求
* */
public SuccessResponseData post(String url, JSONObject jsonObj) {
try {
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
httppost.addHeader("Content-Type", "application/json; charset=utf-8");
StringEntity se = new StringEntity(jsonObj.toString(), "utf-8");
httppost.setEntity(se);
HttpResponse response = httpclient.execute(httppost);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity result = response.getEntity();
return new SuccessResponseData(response.getStatusLine().getStatusCode(), response.getStatusLine().getReasonPhrase(), result);
}else{
return new SuccessResponseData(500, response.getStatusLine().getReasonPhrase(), response.getEntity());
}
} catch (IOException e) {
return new SuccessResponseData(500, e.getMessage(), null);
}
}
}
请求相应封装代码:
package cn.stylefeng.roses.core.reqres.response;
/**
* 请求成功的返回
*
* @author stylefeng
* @Date 2018/1/4 22:38
*/
public class SuccessResponseData extends ResponseData {
public SuccessResponseData() {
super(true, DEFAULT_SUCCESS_CODE, DEFAULT_SUCCESS_MESSAGE, null);
}
public SuccessResponseData(Object object) {
super(true, DEFAULT_SUCCESS_CODE, DEFAULT_SUCCESS_MESSAGE, object);
}
public SuccessResponseData(Integer code, String message, Object object) {
super(true, code, message, object);
}
}
package cn.stylefeng.roses.core.reqres.response;
import lombok.Data;
/**
* 返回给前台的通用包装
*
* @author stylefeng
* @Date 2018/1/4 22:37
*/
@Data
public class ResponseData {
public static final String DEFAULT_SUCCESS_MESSAGE = "请求成功";
public static final String DEFAULT_ERROR_MESSAGE = "网络异常";
public static final Integer DEFAULT_SUCCESS_CODE = 200;
public static final Integer DEFAULT_ERROR_CODE = 500;
/**
* 请求是否成功
*/
private Boolean success;
/**
* 响应状态码
*/
private Integer code;
/**
* 响应信息
*/
private String message;
/**
* 响应对象
*/
private Object data;
public ResponseData() {
}
public ResponseData(Boolean success, Integer code, String message, Object data) {
this.success = success;
this.code = code;
this.message = message;
this.data = data;
}
public static SuccessResponseData success() {
return new SuccessResponseData();
}
public static SuccessResponseData success(Object object) {
return new SuccessResponseData(object);
}
public static SuccessResponseData success(Integer code, String message, Object object) {
return new SuccessResponseData(code, message, object);
}
public static ErrorResponseData error(String message) {
return new ErrorResponseData(message);
}
public static ErrorResponseData error(Integer code, String message) {
return new ErrorResponseData(code, message);
}
public static ErrorResponseData error(Integer code, String message, Object object) {
return new ErrorResponseData(code, message, object);
}
}
调用代码:
Map<String, Object> ngrok_map = new HashMap<>();
ngrok_map.put("type", serverInfo.getPortType());
ngrok_map.put("port", serverInfo.getPort());
JSONObject post_data = new JSONObject(ngrok_map);
SuccessResponseData srd = new http_utils().post(url, post_data);