$client?=?new?SoapClient('這里填wsdl文件地址');

山南網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),山南網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為山南1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的山南做網(wǎng)站的公司定做!
$xml?=?'這里填要發(fā)送的xml';
$client-要調(diào)用的方法名(array('參數(shù)名'?=?$xml));
//參數(shù)一般為數(shù)組,下標(biāo)即接收的參數(shù)名,如,對(duì)方接收的參數(shù)名為sfToXMLStr,則是array('sfToXMLStr'?=?$xml)
?php
if(?$_SERVER['REQUEST_METHOD']?===?'POST'?){
//?接收
$content?=?file_get_contents('php://input');
$xml?=?simplexml_load_string($content);
echo?"來(lái)自XML接收方的響應(yīng)\n";
print_r(?get_object_vars($xml)?);
exit;
}
//?發(fā)送行為
$xml?=?xml
?xml?version="1.0"?
FOX
helloworld/hello
/FOX
xml;
$setting?=?array(
'http'?=?array(
'method'?=?'POST',
'user_agent'?=?'Client?Application?Name',
'header'?=?"Content-type:?application/x-www-form-urlencoded",
'content'?=?$xml
)
);
$context?=?stream_context_create($setting);
$url?=?''.?$_SERVER['REQUEST_URI'];
$response?=?file_get_contents($url,?null,?$context);
echo?$response;
CURL是可以的,但是參數(shù)設(shè)置比較麻煩。這種情況有一些現(xiàn)成的類庫(kù)實(shí)現(xiàn),提供一個(gè)簡(jiǎn)單的示例
接收指定IP的數(shù)據(jù)包,其他IP都要過(guò)濾吧,那就用防火墻來(lái)搞吧
使用的是client段的獲取方式,用client的可以指定IP,代碼大概如下
public void SendMessage()
{
ASCII = Encoding.ASCII;
// 構(gòu)造用于發(fā)送的 字節(jié)緩沖.
Byte[] sendBytes = ASCII.GetBytes(SEND_MESSAGE);
// 構(gòu)造用于接收的 字節(jié)緩沖.
Byte[] recvBytes = new Byte[256];
// IP地址.
IPAddress localAddr = IPAddress.Parse("192.168.19.81");
// 接入點(diǎn).
IPEndPoint ephost = new IPEndPoint(localAddr, PORT);
// 第一個(gè)參數(shù):AddressFamily = 指定 Socket 類的實(shí)例可以使用的尋址方案。
// Unspecified 未指定地址族。
// InterNetwork IP 版本 4 的地址。
// InterNetworkV6 IP 版本 6 的地址。
//
// 第二個(gè)參數(shù):SocketType = 指定 Socket 類的實(shí)例表示的套接字類型。
// Stream 一個(gè)套接字類型,支持可靠、雙向、基于連接的字節(jié)流,而不重復(fù)數(shù)據(jù),也不保留邊界。
// 此類型的 Socket 與單個(gè)對(duì)方主機(jī)通信,并且在通信開(kāi)始之前需要建立遠(yuǎn)程主機(jī)連接。
// 此套接字類型使用傳輸控制協(xié)議 (Tcp),AddressFamily 可以是 InterNetwork,也可以是 InterNetworkV6。
//
// 第三個(gè)參數(shù):ProtocolType = 指定 Socket 類支持的協(xié)議。
// Tcp 傳輸控制協(xié)議 (TCP)。
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
// 嘗試連接主機(jī).
s.Connect(ephost);
//Console.WriteLine("向服務(wù)器發(fā)送到了:{0}", SEND_MESSAGE);
// 向主機(jī)發(fā)送數(shù)據(jù).
// s.Send(sendBytes, sendBytes.Length, SocketFlags.None);
// 接收服務(wù)器的應(yīng)答.
Int32 bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
StringBuilder buff = new StringBuilder();
// while (bytes 0)
// {
// 將緩沖的字節(jié)數(shù)組,裝換為字符串.
// String str = ASCII.GetString(recvBytes, 0, bytes);
String str = "";
for (int i = 0; i recvBytes.Length; i++)
{
str = str + recvBytes[i];
}
int iCount = 0;
iCount = int.Parse(str.Substring(13, 6)) ;
// 加入字符串緩存
buff.Append(str);
// 再次接受,看看后面還有沒(méi)有數(shù)據(jù).
//bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
// }
textBox1.Text = iCount.ToString();
}
catch (Exception ex)
{
MessageBox.Show("連接/發(fā)送/接收過(guò)程中,發(fā)生了錯(cuò)誤!");
MessageBox.Show(ex.Message);
//Console.WriteLine("連接/發(fā)送/接收過(guò)程中,發(fā)生了錯(cuò)誤!");
//Console.WriteLine(ex.Message);
//Console.WriteLine(ex.StackTrace);
}
finally
{
s.Close();
}
這個(gè)其實(shí)很簡(jiǎn)單,
如果xml數(shù)據(jù)很少,你就把它當(dāng)做一個(gè)字符串;
如果xml數(shù)據(jù)多,你可以把它json序列化,傳過(guò)去,就行了。
?php?????
$xml_string?=?file_get_contents("php://input");
$xml_string?=?trim($xml_string);
$xml_object?=?simplexml_load_string($xml_string);
$xml_arr????=?get_object_vars($xml_object);
只要?jiǎng)e人訪問(wèn)你這個(gè)文件傳遞xml。你就能獲取其中的信息了。
文章標(biāo)題:php傳輸xml數(shù)據(jù),php xml文件
文章URL:http://chinadenli.net/article45/dsissei.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、App開(kāi)發(fā)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容