如何通过Web服务示例请求和响应数据 [英] How to request and response data through web service example

查看:64
本文介绍了如何通过Web服务示例请求和响应数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 

Hiii朋友我想在asp.net中创建一个web服务,请求和响应xml数据。

如果有任何机构可以给我一个请求以及响应xml数据的示例代码,请给我。我想尽快完成我的mca最后一个学期项目。

解决方案

这是我写的服务的通用代码示例。它使用SOAP来联系服务,服务返回XML。



我使用存储过程来处理传递给服务的数据,以便可以使用它出于多种目的。



ISercie.cs

使用System; 
使用System.Collections.Generic;
使用System.Linq;
使用System.Runtime.Serialization;使用System.ServiceModel
;
使用System.ServiceModel.Web;
使用System.Text;
使用System.Data;
命名空间MyFirstService
{
[ServiceContract]
公共接口IService1
{
[OperationContract]
DataTable MyService(string storedProcedure,string data) ;
}
}





Service1.svc.cs

<$ p $使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Runtime.Serialization;使用System.ServiceModel
;
使用System.ServiceModel.Web;
使用System.Text;
使用System.Data.SqlClient;
使用System.Configuration;
使用System.Data;
使用System.Xml.Serialization;
使用System.IO;
命名空间MyFirstService
{
//注意:您可以使用重构菜单上的重命名命令将代码,svc和配置文件中的类名Service1一起更改。
public class Service1:IService1
{
public DataTable MyService(string storedProcedure,string data)
{
string connString = ConfigurationManager.ConnectionStrings [MyServiceConnString]。ConnectionString ;
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(storedProcedure,conn);
SqlDataReader reader = null;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@ data,data);
尝试
{
conn.Open();
reader = cmd.ExecuteReader();
//使用SqlDataReader加载数据表
DataTable dataTable = new DataTable();
dataTable.TableName =ReturnData;
dataTable.Load(读者);
//将数据表转换为xml
StringWriter xmlWriter = new StringWriter();
dataTable.WriteXml(xmlWriter,XmlWriteMode.IgnoreSchema,false);
conn.Close();
返回dataTable;
}
catch(例外)
{
throw;
}
}
}
}





带有SOAP调用的VB脚本

 Dim soapServer,soapMessage,data 

For x = 1 To Request.Form.Count()
fieldName = Request.Form.Key (x)
fieldValue = Request.Form.Item(x)
如果fieldName<> 提交和fieldName<> 密码然后
data = data& fieldName& 〜&替换(替换(替换(fieldValue,〜,),|,),&,和)& |
结束如果
下一个


'服务地点 - 生产
soapServer =http://locationofyourservice/MyFirstService/Service1.svc


'消息包括肥皂信封包装,发送到服务
soapMessage =< s:Envelope xmlns:s =& Chr(34)& http://schemas.xmlsoap.org/soap/envelope/& Chr(34)& > 中&安培; _
< s:Body> &安培; _
< MyService xmlns =& Chr(34)& http://tempuri.org/& Chr(34)& > 中&安培; _
< storedProcedure> &安培; storedProcedure& < / StoredProcedure的> 中&安培; _
< data> &安培;数据和< /数据> 中&安培; _
< / MyService> &安培; _
< / s:Body> &安培; _
< / s:Envelope>

设置xmlhttp = CreateObject(MSXML2.ServerXMLHTTP)

xmlhttp.openPOST,soapServer,False
xmlhttp.setRequestHeaderMan,POST& amp ; & soapServer& HTTP / 1.1
xmlhttp.setRequestHeaderSOAPAction,http://tempuri.org/IService1/MyService

xmlhttp.setRequestHeaderContent-Type,text / xml ; charset = utf-8

'调用服务'
xmlhttp.send(soapMessage)

Response.Write xmlhttp.responseText


Hiii friends i want to create a web service in asp.net which request and response in xml data.
If any body can give me a sample code which request as well as response the xml data please give me.I want to complete my mca final semester project as soon as.

解决方案

Here is a generic code sample of a service I wrote. It uses SOAP to contact the service and the service returns XML.

I use a stored procedure to handle the data that is passed to the service so that it can be used for multiple purposes.

ISercie.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data;
namespace MyFirstService
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        DataTable MyService(string storedProcedure, string data);
    }
}



Service1.svc.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Xml.Serialization;
using System.IO;
namespace MyFirstService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
       public DataTable MyService(string storedProcedure, string data)
       {
           string connString = ConfigurationManager.ConnectionStrings["MyServiceConnString"].ConnectionString;
           SqlConnection conn = new SqlConnection(connString);
           SqlCommand cmd = new SqlCommand(storedProcedure, conn);
           SqlDataReader reader = null;
           cmd.CommandType = CommandType.StoredProcedure;
           cmd.Parameters.AddWithValue("@data", data);
           try
           {
               conn.Open();
               reader = cmd.ExecuteReader();         
               //load the datatable with the SqlDataReader
               DataTable dataTable = new DataTable();
               dataTable.TableName = "ReturnData";
               dataTable.Load(reader);
               //convert the datatable to xml
               StringWriter xmlWriter = new StringWriter();
               dataTable.WriteXml(xmlWriter, XmlWriteMode.IgnoreSchema, false);
               conn.Close();
               return dataTable;
           }
           catch (Exception)
           {
               throw;
           }
       }
    }
}



VB Script with the SOAP call

Dim soapServer, soapMessage, data

  For x = 1 To Request.Form.Count()
      fieldName = Request.Form.Key(x)
      fieldValue = Request.Form.Item(x)
      If fieldName <> "Submit" And fieldName <> "Password" Then
          data = data & fieldName & "~" & Replace(Replace(Replace(fieldValue, "~", ""), "|", ""), "&", "and") & "|"
      End If
  Next


  'service location - Production
   soapServer = "http://locationofyourservice/MyFirstService/Service1.svc"


  'message including soap envelope wrapper, to send to the service
  soapMessage = "<s:Envelope xmlns:s=" & Chr(34) & "http://schemas.xmlsoap.org/soap/envelope/" & Chr(34) & ">" & _
                      "<s:Body>" & _
                          "<MyService xmlns=" & Chr(34) & "http://tempuri.org/" & Chr(34) & ">" & _
                              "<storedProcedure>" & storedProcedure & "</storedProcedure>"  & _
                              "<data>" & data & "</data>" & _
                          "</MyService>" & _
                      "</s:Body>" & _
                  "</s:Envelope>"

  Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

  xmlhttp.open "POST", soapServer, False
  xmlhttp.setRequestHeader "Man", POST & " " & soapServer & " HTTP/1.1"
   xmlhttp.setRequestHeader "SOAPAction", "http://tempuri.org/IService1/MyService"

  xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"

  'Calling the service'
  xmlhttp.send(soapMessage)

  Response.Write xmlhttp.responseText


这篇关于如何通过Web服务示例请求和响应数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆