最近搞一个项目,对方是使用java开发的系统,我这边是使用php开发的系统,现在我们双方协定通过xml进行系统之间的交互,但是我现在遇到一个问题,php调用java url的时候我怎样才能将我本地写好的xml文件作为参数传给对法的程序,例如:我的url是:http://localhost:8080/pretest/main/interPhp.action?uid=xxx&filename=(我要传输的文件)。并且对方能够通过java中的File 正常接收,恳请大家帮忙看看,我这里先谢过了。
调试欢乐多
/**
*
* @return
* @param $uri string -上传的网络地址
* @param $postdata array -发送的参数 例:$postdata['name']='yc';
* @param $file string -要上传的文件的物理路径
* @param $host string -上传地址对应的host,一般不需设置
*/
public static function do_upload($uri,$postdata,$file,$host=""){
$postdata['Filedata'] = '@'.$file;//要上传的文件物理路径
$ch = curl_init();// 启动一个CURL会话
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE,false );
if($host!=""){
//$header = 'Content-type: application/x-www-form-urlencoded'."\r\n".'User-Agent : PHP Script'."\r\n".'Host: '.$host."\r\n";
$header = array("Host: {$host}");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//构建http头部
} curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_POST, 1);// 发送一个常规的Post请求
curl_setopt($ch, CURLOPT_HEADER, 0);// 显示返回的Header区域内容
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量,获取的信息以文件流的形式返回
//curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:80");//设置代理服务器
$data = curl_exec ($ch).'';
}