asp.net – 通过邮件发送wcf服务消费表单数据
发布时间:2020-12-30 10:37:12  所属栏目:asp.Net  来源:互联网 
            导读:我读了一些关于这个的文章,我发现要获得wcf从我们添加的帖子请求中获取数据 [ServiceContract]public interface IService1 { [OperationContract] [WebInvoke( Method = POST, BodyStyle = WebMessageBodyStyle.Bare, UriTem
                
                
                
            | 
                         我读了一些关于这个的文章,我发现要获得wcf从我们添加的帖子请求中获取数据 [ServiceContract]
public interface IService1 {
  [OperationContract]
  [WebInvoke(
      Method = "POST",BodyStyle = WebMessageBodyStyle.Bare,UriTemplate = "/GetData")]
  void GetData(Stream data);
} 
 并在实施中 public string GetData( Stream input)
{
    long incomingLength = WebOperationContext.Current.IncomingRequest.ContentLength;
    string[] result = new string[incomingLength];
    int cnter = 0;
    int arrayVal = -1;
    do
    {
        if (arrayVal != -1) result[cnter++] = Convert.ToChar(arrayVal).ToString();
        arrayVal = input.ReadByte();
    } while (arrayVal != -1);
    return incomingLength.ToString();
} 
 我的问题是我应该怎样做,在表单请求中提交操作会发送到我的服务并消费? 在Stream参数中,我是否可以通过Request [“FirstName”]从表单中获取信息? 解决方法您的代码未正确解码请求正文 – 您正在创建一个字符串值数组,每个字符串值都包含一个字符.获取请求体后,您需要解析查询字符串(使用HttpUtility是一种简单的方法).下面的代码显示了如何正确获取正文和其中一个字段.public class StackOverflow_7228102
{
    [ServiceContract]
    public interface ITest
    {
        [OperationContract]
        [WebInvoke(
            Method = "POST",UriTemplate = "/GetData")]
        string GetData(Stream data);
    }
    public class Service : ITest
    {
        public string GetData(Stream input)
        {
            string body = new StreamReader(input).ReadToEnd();
            NameValueCollection nvc = HttpUtility.ParseQueryString(body);
            return nvc["FirstName"];
        }
    }
    public static void Test()
    {
        string baseAddress = "http://" + Environment.MachineName + ":8000/Service";
        WebServiceHost host = new WebServiceHost(typeof(Service),new Uri(baseAddress));
        host.Open();
        Console.WriteLine("Host opened");
        WebClient c = new WebClient();
        c.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
        Console.WriteLine(c.UploadString(baseAddress + "/GetData","FirstName=John&LastName=Doe&Age=33"));
        Console.Write("Press ENTER to close the host");
        Console.ReadLine();
        host.Close();
    }
}                        (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – ASP.NET MVC – RequireJS最佳的多页面应用
 - vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破
 - asp.net – 从DropdownList SelectedItem获取属性
 - asp.net-mvc – View中的意外NullReferenceException
 - asp.net – CalendarExtender定位问题
 - asp.net-mvc – 如何在我自己的自定义助手中使用ASP.NET MV
 - asp.net – IE8 Win7 Facebook Connect问题
 - asp.net-mvc – 在MVC4中绑定的正确方法
 - asp.net 根据汉字的拼音首字母搜索数据库(附 LINQ 调用方法
 - asp.net – Azure上的联合身份验证
 
推荐文章
            站长推荐
            
        热点阅读
            