Project A controller
/**
* 同步企业信息
*
* @param secretBO
* @param corpBO
* @return
*/
@RequestMapping("/syncCorpInfo.json")
@ResponseBody
public ResponseResultBO syncCorpInfo(@JsonPathParam("$.secretBO") SecretBO secretBO, @JsonPathParam("$.data") MisCorpBO corpBO) {
ResponseResultBO resultBO = MisSyncUtil.validateSyncSecret(secretBO);
if (!resultBO.isSuccess()) {
return resultBO;
}
try {
corpService.syncCorpInfo(corpBO);
resultBO.setSuccess(true);
resultBO.setInfo("同步企业信息成功!");
} catch (BusinessException e) {
logger.error("syncCorpInfo.json 同步企业信息失败! bizErr:{}", e.getMessage(), e);
resultBO.setSuccess(false);
resultBO.setInfo(e.getMessage());
} catch (Exception e) {
logger.error("syncCorpInfo.json 同步企业信息失败! err:{}", e.getMessage(), e);
resultBO.setSuccess(false);
resultBO.setInfo("同步失败,系统错误!");
}
return resultBO;
}
Project B test
package httpurl.onlyou.mis;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import net.sf.json.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
/**
*
*
*
D:\ideaIU-2017.3.2.win_workspace\onlyou-mis\mis-web\src\main\java\com\onlyou\mis\sas\web\MisSyncController.java
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/E:/PRJ_J2EE/PrjFlexJava/WebContent/WEB-INF/lib/activemq-all-5.14.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/PRJ_J2EE/PrjFlexJava/WebContent/WEB-INF/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2018-10-08 18:55:45,098 DEBUG org.apache.http.impl.conn.SingleClientConnManager - Get connection for route HttpRoute[{}->http://localhost:8082]
2018-10-08 18:55:45,107 DEBUG org.apache.http.impl.conn.DefaultClientConnectionOperator - Connecting to localhost:8082
2018-10-08 18:55:46,122 DEBUG org.apache.http.impl.conn.DefaultClientConnectionOperator - Connect to localhost:8082 timed out. Connection will be retried using another IP address
2018-10-08 18:55:46,122 DEBUG org.apache.http.impl.conn.DefaultClientConnectionOperator - Connecting to localhost:8082
2018-10-08 18:55:47,123 DEBUG org.apache.http.impl.conn.DefaultClientConnection - Connection closed
2018-10-08 18:55:47,124 DEBUG org.apache.http.impl.conn.DefaultClientConnection - Connection shut down
2018-10-08 18:55:47,124 DEBUG org.apache.http.impl.conn.SingleClientConnManager - Releasing connection org.apache.http.impl.conn.SingleClientConnManager$ConnAdapter@61a2d734
2018-10-08 18:55:47,126 ERROR httpurl.onlyou.mis.TestMisApi - post请求提交失败:http://localhost:8082/misSync/syncOrg.json
org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8082 refused
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:158)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at httpurl.onlyou.mis.TestMisApi.httpPost(TestMisApi.java:44)
at httpurl.onlyou.mis.TestMisApi.main(TestMisApi.java:102)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
... 9 more
*
* @author ZengWenfeng
* @date 2018.10.08
*/
public class TestMisApi
{
private static Logger logger = LoggerFactory.getLogger(TestMisApi.class); //日志记录
public static JSONObject httpPost(String url, String jsonParam, boolean noNeedResponse)
{
//post请求返回结果
DefaultHttpClient httpClient = new DefaultHttpClient();
JSONObject jsonResult = null;
HttpPost method = new HttpPost(url);
try
{
if (null != jsonParam)
{
//解决中文乱码问题
StringEntity entity = new StringEntity(jsonParam, "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
}
HttpResponse result = httpClient.execute(method);
url = URLDecoder.decode(url, "UTF-8");
/** 请求发送成功,并得到响应 **/
if (result.getStatusLine().getStatusCode() == 200)
{
String str = "";
try
{
/** 读取服务器返回过来的json字符串数据 **/
str = EntityUtils.toString(result.getEntity());
if (noNeedResponse)
{
return null;
}
/** 把json字符串转换成json对象 **/
jsonResult = JSONObject.fromObject(str);
}
catch (Exception e)
{
logger.error("post请求提交失败:" + url, e);
}
}
}
catch (IOException e)
{
logger.error("post请求提交失败:" + url, e);
}
return jsonResult;
}
/**
* test function
*
* @author ZengWenfeng
* @date 2018.10.11
* @param args
*/
public static void main(String[] args)
{
//
MisCorpBO misOrgBO = new MisCorpBO();
misOrgBO.setId("test");
misOrgBO.setName("test");
//
Random random = new Random();
String nonce = String.valueOf(random.nextInt(9999999));
String tamp = String.valueOf(System.currentTimeMillis());
String sign = SHA1.encode("testAppSecret" + nonce + tamp);
SecretBO secretBO = new SecretBO();
secretBO.setAppKey("testAppSecret");
secretBO.setNonce(nonce);
secretBO.setSignature(sign);
secretBO.setTamp(tamp);
//
Map<String, Object> params = new HashMap<String, Object>();
params.put("secretBO", secretBO);
params.put("data", misOrgBO);
//
String str = JSON.toJSONString(params);
System.out.println("str : " + str);
//http://misdev.onlyou.com:8892/misSync/syncCorpInfo.json
//172.16.135.201
String url = "http://172.16.135.201:8892/misSync/syncCorpInfo.json";
//
JSONObject result01 = httpPost(url, str, false);
System.out.println(result01);
}
}
测试,进来了