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

来源:互联网 发布:自动折弯机如何编程 编辑:程序博客网 时间:2024/06/18 16:31

这里面简单介绍下,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->我们

0 0