客户端:
private static String _doPost(String url, String ctype, byte[] content, int connectTimeout, int readTimeout,
Map headerMap) throws IOException {
HttpURLConnection conn = null;
OutputStream out = null;
String rsp = null;
try {
try {
conn = getConnection(new URL(url), METHOD_POST, ctype, headerMap);
conn.setConnectTimeout(connectTimeout);
conn.setReadTimeout(readTimeout);
} catch (IOException e) {
Map map = getParamsFromUrl(url);
//TaobaoLogger.logCommError(e, url, map.get(“app_key”), map.get(“method”), content);
throw e;
}
try {
out = conn.getOutputStream();
//name=ligang&age=18 这种格式数据value先进行UrlEncode 再转byte字节流
out.write(content);
rsp = getResponseAsString(conn);
} catch (IOException e) {
Map map = getParamsFromUrl(url);
//TaobaoLogger.logCommError(e, conn, map.get(“app_key”), map.get(“method”), content);
throw e;
}
} finally {
if (out != null) {
out.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rsp;
}
服务端接受
1、String name = request.getParameter(“name”);
2、request.getInputStream() 对输入流进行解析
注意:两种方式不可混用,用了一个,另一种方法将会取不到值,具体解答参考源码org.apache.catalina.core.ApplicationHttpRequest.