2010-02-15 4 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

IHelloService에서 HelloService으로 작업을 변경해보십시오.

그리고 내가 왜 당신에게 힘든 방법을하고 있는지 물어 보겠습니다. webHttpBinding을 추가하고 JSON을 사용하기 만하면됩니다.

매우 간단한 예를 참조하십시오. here.

+0

실제 서비스는 저에 의해 작성되지 않았습니다. 나는 지금 막 연결하려고하고있다. 스크립트는 vbscript 또는 jscript에서 소비되어야합니다. Json은 jscript 만 있습니다. – Zuhaib

+0

좋아, 사용하지 말고 json .. 쿼리 또는 양식을 먼저 보내보십시오. 이러한 프로토콜을 사용할 수 있습니다. munging 비누 패킷은 고통스럽고 불필요 할 수도 있습니다 .... 링크 된 기사의 초기 섹션을 보면, 그 시나리오를 다루고 있습니다. –

+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 사용자가 읽을 수 있는지 여부입니다. –

관련 문제