HttpURLConnection参数以XML形式封装
//得到连接
public static HttpURLConnection setRequest(String urlStr) {
HttpURLConnection con = null;
try {
URL url = new URL(urlStr);
try {
con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Pragma:", "no-cache");
con.setRequestMethod("POST");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml");
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
return con;
}
请求参数xml的封装,以注册为例子
//注册参数
public static String getXmlRegister(String username, String userpwd, String mobile, String email, String sex, String birthday, String address) {
StringBuilder sb = new StringBuilder();
sb.append("<xml>");
sb.append("<username>" + username + "</username>");
sb.append("<userpwd>" + userpwd + "</userpwd>");
sb.append("<mobile>" + mobile + "</mobile>");
sb.append("<email>" + username + "</email>");
if (sex != null) {
sb.append("<sex>" + sex + "</sex>");//是否必填 否
}
if (birthday != null) {
sb.append("<birthday>" + birthday + "</birthday>");//是否必填 否
}
if (address != null) {
sb.append("<address>" + address + "</address>");//是否必填 否
}
sb.append("</xml>");
return sb.toString();
}
注册请求代码
//注册请求
public static String postByRegister(String urlStr, String username, String pwd, String mobile, String email, String sex, String birthday, String address) {
OutputStreamWriter out = null;
String line = "";
BufferedReader in = null;
try {
HttpURLConnection con = setRequest(urlStr);
out = new OutputStreamWriter(con.getOutputStream());
String xmlInfo = getXmlRegister(username, pwd, mobile, email, sex, birthday, address);
System.out.println("urlStr=" + urlStr);
System.out.println("xmlInfo=" + xmlInfo);
out.write(new String(xmlInfo.getBytes("ISO-8859-1")));
out.flush();
out.close();
// 使用输出流来输出字符(可选)
if (con.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = con.getInputStream();// 获取返回数据
ByteArrayOutputStream baout = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = is.read(buf)) != -1) {
baout.write(buf, 0, len);
}
line = new String(baout.toByteArray());
System.out.println(line);
out.close();
return line;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return line;
}