سؤال

لدي رمز لإرسال XML عبر البريد. ولكن هذا الرمز هو في PHP وأنا في حاجة إليها في vb.net.

أي مساعدة لتحويل هذا الرمز؟

$XMLFile= (here i have created the xml file. XML is encoded ISO-8859)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"URL WHERE I SEND XML");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,"XMLDATA=".$XMLFile);
$results=curl_exec ($ch);
curl_close ($ch);

$results=stripslashes($results);

$xmlreturned=new SimpleXMLElement($results);

if($xmlreturned->NotificationResultHeader->RRC==0){
if($xmlreturned->NotificationResultList->NotificationResult->NRC==0){
echo "OK. SUCCES"; 

وكيف تحويل رمز PHP هذا أيضا:

$msg=htmlentities($msg);
$msg=urlencode($msg); 
هل كانت مفيدة؟

المحلول

تحتاج إلى استخدام httpwebrequest. و httpwebresponse. الطبقات. يمكن أن تبدو الكود شيئا مثل هذا (بلدي VB صدئ بعض الشيء هذه الأيام):

Dim xmlDoc as XmlDocumnet
'
'  prepare you xml doc here...
'
Dim encoding as ASCIIEncoding = New ASCIIEncoding()
Dim postData as String 
postData = "XMLDATA=" + xmlDoc.ToString()
Dim data() as Byte 
data = encoding.GetBytes(postData)

' Prepare web request...
Dim myRequest as HttpWebRequest 
    myRequest = CType(WebRequest.Create("URL TO POST HERE"), HttpWebRequest)
myRequest.Method = "POST"
myRequest.ContentType="application/x-www-form-urlencoded"
myRequest.ContentLength = data.Length
Dim newStream as Stream  = myRequest.GetRequestStream()
' Send the data.
newStream.Write(data, 0, data.Length)

' Get the response
Dim myResponse as HttpWebResponse
myResponse = myRequest.GetResponse()

نصائح أخرى

يرى: حل الحلول و حل urlencode

وبقدر الحيل، يبدو أنك تحاول استدعاء خدمة ويب. إذا كانت خدمة ويب مناسبة (معنى هناك WSDL و XSD في مكان ما)، فيجب عليك إضافة مرجع خدمة (أو مرجع ويب إذا كنت في VS2005 أو VS2003) لمشروعك، مما سيولد وكيلا لك استخدم (بدلا من إغراق XML يدويا إلى خادم).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top