curl之post提交xml

简介: 直接上代码: 1 /** 2 * 以post方式提交xml到对应的接口url 3 * 4 * @param string $xml 需要post的xml数据 5 * @param string $url url 6 ...

直接上代码:

 1     /** 
 2      * 以post方式提交xml到对应的接口url
 3      * 
 4      * @param string $xml  需要post的xml数据
 5      * @param string $url  url
 6      * @param bool $useCert 是否需要证书,默认不需要
 7      * @param int $second   url执行超时时间,默认30s
 8      * @throws WxPayException
 9      */
10     private static function postXmlCurl($xml, $url, $useCert = false, $second = 30) 
11     {    
12         $ch = curl_init();
13         //设置超时
14         curl_setopt($ch, CURLOPT_TIMEOUT, $second);
15     
16         //如果有配置代理这里就设置代理
17         if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0" 
18             && WxPayConfig::CURL_PROXY_PORT != 0){ 
19             curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
20             curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
21         }   
22         curl_setopt($ch,CURLOPT_URL, $url);
23         curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
24         curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
25         //设置header
26         curl_setopt($ch, CURLOPT_HEADER, FALSE);
27         //要求结果为字符串且输出到屏幕上
28         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
29     
30         if($useCert == true){
31             //设置证书
32             //使用证书:cert 与 key 分别属于两个.pem文件
33             curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
34             curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);
35             curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
36             curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);
37         }
38         //post提交方式
39         curl_setopt($ch, CURLOPT_POST, TRUE);
40         curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
41         //运行curl
42         $data = curl_exec($ch);
43         //返回结果
44         if($data){
45             curl_close($ch);
46             return $data;
47         } else {
48             $error = curl_errno($ch);
49             curl_close($ch);
50             throw new WxPayException("curl出错,错误码:$error");
51         }
52     }

response.php

1 <?php
2   if(isset($_POST['name'])){
3       if(!empty($_POST['name'])){
4           echo '您好,',$_POST['name'].'!';
5     }
6 }
7 ?>

 

相关文章
|
4月前
|
XML 数据格式
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
|
XML 数据格式 网络架构
提交(post)xml文件给指定url的2种方法
原文:提交(post)xml文件给指定url的2种方法 1  这段代码是在网上搜到的,拿来共享,项目正好要用到。其中的data你只需要传递一个xml字符串就可以 protected   string   PostXmlToUrl(string   url,string   data)     { ...
844 0
|
XML C# 数据格式
C# POST 发送XML(返回string中可能出现中文乱码问题)
/// &lt;summary&gt; /// C# POST 发送XML /// &lt;/summary&gt; /// &lt;param name="url"&gt;目标Url&lt;/param&gt; /// &lt;param name="strPost"&gt;要Post的字符串(数据)&lt;/par
1553 0
|
XML .NET 数据格式
ASP.NET通过http/https的POST方式,发送和接受XML文件内容
本文转载:http://hi.baidu.com/ysyhyt/item/5011ae39ce3cf49fb80c0395 本文参考:http://blog.csdn.net/ououou123456789/article/details/8672962 Response.End();//这一步是关键,不输出带Html标签的内容。
829 0
|
XML 数据格式
httpunit post xml data
import java.io.ByteArrayInputStream; import junit.framework.TestCase; import org.junit.After;import org.
655 0
|
XML Java Apache
HttpClient4 Post XML到一个服务器上
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/347157 HttpClient4 Post XML到一个服务器上     现在网上介绍的HttpClient基本上全是3.x版本的内容,HttpClient4的API变化相对3已经变化很大,对HttpClient4做了简单的研究后,完成了一个HttpClient4 Post XML功能。
586 0
|
XML JSON JavaScript
javascript post数据到WCF反馈json或者XML
前端代码: //创建XMLHTTPfunction createXMLHTTP(){var httpRequest;     try {        httpRequest = new XMLHttpRequest();     }     catch (e) {         try { ...
784 0
|
13天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
13 0