12,162
社区成员
发帖
与我相关
我的任务
分享
Dim url,host,method,xmlns,soapAction,soapRequest,xmlDocument
host = "www.caohejing.web"
url = "http://www.caohejing.web/webservice/news/Default.asmx"
method = "POST"
xmlns = "http://www.caohejing.com/NewsService/"
soapAction = "http://www.caohejing.com/NewsService/NewsAction"
'xmlDocument = CreateXmlDocument()
xmlDocument="new"
'拼接请求字符串
soapRequest = "<?xml version='1.0' encoding='utf-8'?>"
soapRequest = soapRequest & " <soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'> "
soapRequest = soapRequest & " <soap12:Body>"
soapRequest = soapRequest & " <NewsAction xmlns='"& xmlns &"'>"
soapRequest = soapRequest & " <newsXML>"& xmlDocument &"</newsXML>"
'soapRequest = soapRequest & " <newsXML>test msg</newsXML>"
soapRequest = soapRequest & " </NewsAction> "
soapRequest = soapRequest & " </soap12:Body>"
soapRequest = soapRequest & " </soap12:Envelope>"
response.Write(soapRequest)
'创建XMLHttp连接,并传输数据
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
xmlhttp.setRequestHeader "HOST", host
xmlhttp.setRequestHeader "Content-Length",LEN(soapRequest)
xmlhttp.setRequestHeader "SOAPAction", soapAction 'WEBSERVICE的命名空间+ "/" + 调用的方法名称
xmlhttp.Send(SoapRequest)
POST /webservice/news/Default.asmx HTTP/1.1
Host: www.caohejing.web
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.caohejing.com/NewsService/NewsAction"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<NewsAction xmlns="http://www.caohejing.com/NewsService/">
<newsXML>string</newsXML>
</NewsAction>
</soap:Body>
</soap:Envelope>
/// <summary>
/// 添加一条新闻
/// </summary>
/// <param name="newsXML">一条新闻组成的xml内容</param>
/// <returns>状态</returns>
[WebMethod]
public string NewsAction(String newsXML)
{
return newsXML+" Web";
}
<%
Dim url,host,method,xmlns,soapAction,soapRequest,xmlDocument
host = "www.caohejing.web"
url = "http://www.caohejing.web/webservice/news/Default.asmx"
method = "POST"
xmlns = "http://www.caohejing.com/NewsService/"
soapAction = "http://www.caohejing.com/NewsService/NewsAction"
xmlDocument = CreateXmlDocument()
'拼接请求字符串
soapRequest = "<?xml version='1.0' encoding='utf-8'?>"
soapRequest = soapRequest & " <soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'> "
soapRequest = soapRequest & " <soap12:Body>"
soapRequest = soapRequest & " <NewsAction xmlns='"& xmlns &"'>"
soapRequest = soapRequest & " <newsXML>"& xmlDocument &"</newsXML>"
soapRequest = soapRequest & " </NewsAction> "
soapRequest = soapRequest & " </soap12:Body>"
soapRequest = soapRequest & " </soap12:Envelope>"
'response.Write(soapRequest)
'创建XMLHttp连接,并传输数据
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "HOST", host
xmlhttp.setRequestHeader "Content-Length",LEN(soapRequest)
xmlhttp.setRequestHeader "SOAPAction", soapAction 'WEBSERVICE的命名空间+ "/" + 调用的方法名称
xmlhttp.Send(SoapRequest)
'这样就利用XMLHTTP成功发送了与SOAP示例所符的SOAP请求.
'检测一下是否成功:
'Response.Write xmlhttp.Status
'Response.Write xmlhttp.StatusText
If xmlhttp.Status = 200 Then
Set xmlDOC =server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
Response.write xmlStr
Set xmlDOC=nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
Set xmlhttp = Nothing
'----------------------------
' 创建一个XML文件,包含一条新闻内容
'----------------------------
function CreateXmlDocument()
Dim xdoc
xdoc = "<?xml version='1.0' encoding='utf-8' ?>"
xdoc = xdoc & "<Wohui_DataExtchangedata>"
xdoc = xdoc & " <NEWSTITLE>"
xdoc = xdoc & " 新闻标题"
xdoc = xdoc & " </NEWSTITLE>"
'操作动作(区分大小写): New:新建,Edit:修改,Delete:删除
xdoc = xdoc & " <OPERATIONTYPE>"
xdoc = xdoc & " New/Edit/Delete"
xdoc = xdoc & " </OPERATIONTYPE>"
xdoc = xdoc & " <CHANGEDATE>"
xdoc = xdoc & " 2011/03/04"
xdoc = xdoc & " </CHANGEDATE>"
xdoc = xdoc & " <NEWSBODY>"
xdoc = xdoc & " <DOCUMENT>"
xdoc = xdoc & " <DICID>"
xdoc = xdoc & " 10"
xdoc = xdoc & " </DICID>"
xdoc = xdoc & " <NEWS_TITLE>"
xdoc = xdoc & " news title"
xdoc = xdoc & " </NEWS_TITLE>"
xdoc = xdoc & " <NEWS_FORM>"
xdoc = xdoc & " form"
xdoc = xdoc & " </NEWS_FORM>"
xdoc = xdoc & " <NEWS_TYPEID>"
xdoc = xdoc & " 134"
xdoc = xdoc & " </NEWS_TYPEID>"
xdoc = xdoc & " <NEWS_CLICKNUM>"
xdoc = xdoc & " 100"
xdoc = xdoc & " </NEWS_CLICKNUM>"
xdoc = xdoc & " <NEWS_AUTHOR>"
xdoc = xdoc & " author"
xdoc = xdoc & " </NEWS_AUTHOR>"
'新闻状态. 1:显示,-1:不显示
xdoc = xdoc & " <NEWS_STATUS>"
xdoc = xdoc & " 1"
xdoc = xdoc & " </NEWS_STATUS>"
'新闻置顶. 1:置顶, -1:不置顶
xdoc = xdoc & " <NEWS_ISTOP>"
xdoc = xdoc & " 1"
xdoc = xdoc & " </NEWS_ISTOP>"
'新闻发布5天后是否显示"New"图标. 1:显示,-1:不显示
xdoc = xdoc & " <NEWS_ISNEW>"
xdoc = xdoc & " 1"
xdoc = xdoc & " </NEWS_ISNEW>"
xdoc = xdoc & " <NEWS_STATRTDATE>"
xdoc = xdoc & " 2011/01/01"
xdoc = xdoc & " </NEWS_STATRTDATE>"
xdoc = xdoc & " <NEWS_ENDDATE>"
xdoc = xdoc & " 2011/01/01"
xdoc = xdoc & " </NEWS_ENDDATE>"
xdoc = xdoc & " <NEWS_CONTENT>"
xdoc = xdoc & " <![CDATA["
xdoc = xdoc & " content......"
xdoc = xdoc & " ]]>"
xdoc = xdoc & " </NEWS_CONTENT>"
xdoc = xdoc & " <FILEPUBATTACHLIST>"
xdoc = xdoc & " <PUBATTACH>"
xdoc = xdoc & " <FILENAME>"
xdoc = xdoc & " filename.doc"
xdoc = xdoc & " </FILENAME>"
xdoc = xdoc & " <FILETYPE>"
xdoc = xdoc & " application/msword"
xdoc = xdoc & " </FILETYPE>"
xdoc = xdoc & " <FILESIZE>"
xdoc = xdoc & " 8234"
xdoc = xdoc & " </FILESIZE>"
xdoc = xdoc & " <FILEEXTENSION>"
xdoc = xdoc & " doc"
xdoc = xdoc & " </FILEEXTENSION>"
xdoc = xdoc & " <ISMAIN>"
xdoc = xdoc & " false"
xdoc = xdoc & " </ISMAIN>"
xdoc = xdoc & " <FILECONTENT>"
xdoc = xdoc & " dddddd"
xdoc = xdoc & " </FILECONTENT>"
xdoc = xdoc & " </PUBATTACH>"
xdoc = xdoc & " </FILEPUBATTACHLIST>"
xdoc = xdoc & " </DOCUMENT>"
xdoc = xdoc & " </NEWSBODY>"
xdoc = xdoc & "</Wohui_DataExtchangedata>"
CreateXmlDocument = xdoc
end function
%>
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /webservice/news/Default.asmx HTTP/1.1
Host: www.caohejing.web
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<NewsAction xmlns="http://www.caohejing.com/NewsService/">
<newsXML>string</newsXML>
</NewsAction>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<NewsActionResponse xmlns="http://www.caohejing.com/NewsService/">
<NewsActionResult>string</NewsActionResult>
</NewsActionResponse>
</soap12:Body>
</soap12:Envelope>