客户端:
package com.http.post;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
import javax.xml.transform.OutputKeys;
import org.omg.CORBA.portable.OutputStream;
public class HttpUtil {
// 请求服务端的url
private static String PATH = "http://192.168.70.65:8080/myhttp/servlet";
private static URL url;
static {
try {
url = new URL(PATH);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @param params
* 填写的URL的参数
* @param encode
* 字节编码
* @return
*/
public static String sendPostMessage(Map<String, String> params,
String encode) {
StringBuffer buffer = new StringBuffer();
try {
if (params != null && !params.isEmpty()) {
for (Map.Entry<String, String> entry : params.entrySet()) {
buffer.append(entry.getKey()).append("=")
.append(URLEncoder.encode(entry.getValue()))
.append("&");
}
}
// 删除掉最后一个&
buffer.deleteCharAt(buffer.length() - 1);
HttpsURLConnection urlConnection = (HttpsURLConnection) url
.openConnection();
urlConnection.setConnectTimeout(3000);
urlConnection.setDoInput(true);// 表示从服务器获取数据
urlConnection.setDoOutput(true);// 表示从服务器写数据
// 获得上传信息的字节大小及长度
byte[] mydata = buffer.toString().getBytes();
// 表示设置请求体的类型是文本类型
urlConnection.setRequestProperty("Content-Type",
"applacation/x-www-form-urlencoded");
urlConnection.setRequestProperty("Content-Length",
String.valueOf(mydata.length));
// 获得输出流,向服务器输出数据
OutputStream outputStream = (OutputStream) urlConnection
.getOutputStream();
outputStream.write(mydata);
// 获得服务器响应的结果和状态码
int responsecode = urlConnection.getResponseCode();
if (responsecode == 200) {
return changeInputStream(urlConnection.getInputStream(), encode);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
/**
* 将一个输入流转换为指定编码的字符串
* @param inputStream
* @param encode
* @return
*/
private static String changeInputStream(InputStream inputStream,
String encode) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
String result="";
if (inputStream != null) {
try {
while ((len = inputStream.read(data)) != -1) {
outputStream.write(data, 0, len);
}
result= new String(outputStream.toByteArray(),encode);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
public static void main() {
Map<String, String> params = new HashMap<String, String>();
params.put("username", "admin");
params.put("password", "123");
sendPostMessage(params, "utf-8");
}
}
服务器端: