您的位置:首页 > 理论基础 > 计算机网络

Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据

2016-04-08 11:42 986 查看
这里面简单介绍下,HttpURLConnection连接服务器,并返回数据

客户端代码java代码:

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class PostXml {
public static void main(String args[]) {
try {
String xml = "<?xml version='1.0' encoding='UTF-8'?><group><name>周成林</name><age>22</age><Image>我们</Image></group>";
// 创建url资源
URL url = new URL("http://119.29.85.118//finance.php");
// 建立http连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置允许输出
conn.setDoOutput(true);

conn.setDoInput(true);

// 设置不用缓存
conn.setUseCaches(false);
// 设置传递方式
conn.setRequestMethod("POST");
// 设置维持长连接
conn.setRequestProperty("Connection", "Keep-Alive");
// 设置文件字符集:
conn.setRequestProperty("Charset", "UTF-8");
//转换为字节数组
byte[] data = xml.getBytes();
// 设置文件长度
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
// 设置文件类型:
conn.setRequestProperty("contentType", "text/xml");
// 开始连接请求
conn.connect();
OutputStream  out = conn.getOutputStream();
// 写入请求的字符串
out.write(data);
out.flush();
out.close();

System.out.println(conn.getResponseCode());

// 请求返回的状态
if (conn.getResponseCode() == 200) {
System.out.println("连接成功");
// 请求返回的数据
InputStream in = conn.getInputStream();
String a = null;
try {
byte[] data1 = new byte[in.available()];
in.read(data1);
// 转成字符串
a = new String(data1);
System.out.println(a);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} else {
System.out.println("no++");
}

} catch (Exception e) {

}
}
}


服务端php代码:

<?php

@header("Content-type: text/html; charset=utf-8");
$file_in = file_get_contents("php://input");
$request=simplexml_load_string($file_in);
foreach($request->children() as $childItem) {
//输出xml节点名称和值
echo $childItem->getName() . "->".$childItem."<br />";
//其他操作省略
}
?>


返回结果:

name->周成林
age->22
Image->我们
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: