Java发送HTTP POST请求(内容为xml格式)

2014-11-24 10:31:16 · 作者: · 浏览: 0

今天在给平台用户提供http简单接口的时候,顺便写了个调用的Java类供他参考。
服务器提供的是xml格式的http接口,接口定义如下:




%s
service


%s
%s
%s
%s





%s
service


rescode>%s

对应调用端的Java代码(只是个demo,参数都暂时写死了)如下:


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpPostTest {
void testPost(String urlStr) {
try {
URL url = new URL(urlStr);
URLConnection con = url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Pragma:", "no-cache");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml");

OutputStreamWriter out = new OutputStreamWriter(con
.getOutputStream());
String xmlInfo = getXmlInfo();
System.out.println("urlStr=" + urlStr);
System.out.println("xmlInfo=" + xmlInfo);
out.write(new String(xmlInfo.getBytes("ISO-8859-1")));
out.flush();
out.close();
BufferedReader br = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line = "";
for (line = br.readLine(); line != null; line = br.readLine()) {
System.out.println(line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

private String getXmlInfo() {
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append("

");
sb.append(" 1");
sb.append(" service");
sb.append("
");
sb.append(" ");
sb.append(" 0000021000011001");
sb.append(" 33647405");
sb.append(" mnt/5.0.217.50/resources/80009.mov");
sb.append(" 0000021000011001");
sb.append("
");
sb.append("");
return sb.toString();
}

public static void main(String[] args) {
String url = "http://5.0.217.50:17001/VideoSend";
new HttpPostTest().testPost(url);
}
}