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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值