2010-02-15 49 views
0
var oXMLDoc, oXMLHttp, soapRequest, soapResponse; 

oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 

oXMLHttp.open("POST", "http://nerdbox/HelloService.svc", false); 

// Add HTTP headers 
oXMLHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); 
oXMLHttp.setRequestHeader("SOAPAction", "http://tempuri.org/IHelloService/SayHello"); 

// Form the message 
soapRequest = '<?xml version="1.0" encoding="utf-16"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><SayHello xmlns="http://tempuri.org/"><name>Zuhaib</name></SayHello></soap:Body></soap:Envelope>'; 

WScript.Echo("Request : " + soapRequest); 

oXMLHttp.send(soapRequest); 
soapResponse = oXMLHttp.responseXML.xml; 
WScript.Echo("Respose : " + soapResponse); 

這個JScript有什麼問題?爲什麼我會收到400個錯誤的請求。我讀了類似的線程在stackoverflow ..有人說它的肥皂信息格式問題。400錯誤請求:使用JScript/VBScript消耗WCF basicHttpBinding(Soap)

這是消息看起來像是如果我從提琴手。

回答

1

試着改變你的行動從IHelloServiceHelloService

讓我問你,爲什麼你這樣做是困難的。只需添加一個webHttpBinding並使用JSON即可。

看一個非常簡單的例子here

+0

實際的服務不是我寫的。我只是想連接。該腳本必須從vbscript或jscript中使用。 Json只是jscript。 – Zuhaib

+0

好的,不要使用JSON ..嘗試發送作爲查詢或形式第一。有可能啓用這些協議。消滅肥皂包是痛苦的,可能是不必要的....看到鏈接文章的早期部分,它涵蓋了該場景.. –

+0

沒關係,我有一個腦屁。你正在輪詢一個WCF服務。對不起...... –

0

我不得不更改您的代碼如下得到它VbsEdit當中跑...然後我(顯然)得到它不能夠找到資源......但你的代碼更改這和錯誤看看它是否有所作爲?

Dim oXMLDoc, oXMLHttp, soapRequest, soapResponse 

Set oXMLHttp = CreateObject("Microsoft.XMLHTTP") 

oXMLHttp.open "POST", "http://nerdbox/HelloService.svc", False 

'// Add HTTP headers 
oXMLHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
oXMLHttp.setRequestHeader "SOAPAction", "http://tempuri.org/IHelloService/SayHello" 

'// Form the message 
soapRequest = "<?xml version=""1.0"" encoding=""utf-16""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Body><SayHello xmlns=""http://tempuri.org/""><name>Zuhaib</name></SayHello></soap:Body></soap:Envelope>" 

WScript.Echo "Request : " + soapRequest 

oXMLHttp.send soapRequest 
soapResponse = oXMLHttp.responseXML.xml 
WScript.Echo "Respose : " + soapResponse 
+0

請重新格式化您的代碼,以便XML不在一行。 –

+0

@JohnSaunders:嘿,我剛剛複製了原始文章中的代碼,並重新發布了我必須做出的更改以使其能夠在VBSEdit中編譯和運行...... XML-in-one-line來自原始帖子,並且我不關心如何改變代碼的工作方式。 –

+0

我現在關心的不是該程序是否正常工作,而是其他SO用戶是否可以讀取它。 –