• 使用Fiddler调试Wcf Rest


    1 使用Fiddler调试Wcf Rest

    1.1 怎样使用断点调试

    1.1.1 运行项目

    1.1.2 调试à附加进程àFiddler.exe(勾选显示所有用户的进程)

    1.2 Get方法

    1.2.1 Fiddlerà选择Composerà选择Get并输入服务地址
    image

    1.3 Post方法

    1.3.1 Fiddlerà选择Composerà选择Post并输入服务地址
    image

    1.3.2 在Request Body写入传递参数
    clip_image006

    1.3.3 在Request Headers写入参数头,如果要传递的是xml类型参数,需加入Content-Type: application/xml,否则服务无法使用
    clip_image008

    2 使用流的方法调用方法(Post)

    2.1 源代码

    private byte[] ToByteArray(Stream stream)
    
    {
    
    byte[] buffer = new byte[32768];
    
    using (MemoryStream ms = new MemoryStream())
    
    {
    
    while (true)
    
    {
    
    int read = stream.Read(buffer, 0, buffer.Length);
    
    if (read <= 0)
    
    return ms.ToArray();
    
    ms.Write(buffer, 0, read);
    
    }
    
    }
    
    }
    
    [WebInvoke(UriTemplate = "/CreateStream?message={xmlInput}", Method = "POST")]
    
    public Stream CreateStream(string xml, Stream body)
    
    {
    
    byte[] bodyData = ToByteArray(body);
    
    string bodyContent = Encoding.UTF8.GetString(bodyData);
    
    XElement ele = XElement.Parse(bodyContent);
    
    WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml";
    
    XDocument doc = new XDocument(
    
    new XDeclaration("1.0", "utf-8", "yes"),
    
    new XElement("Returns",
    
    new XElement("Status", 1),
    
    new XElement("Msg", "登陆成功的消息"),
    
    new XElement("Id", ele.Element("Id").Value),
    
    new XElement("StringValue", ele.Element("StringValue").Value))
    
    );
    
    xml = doc.ToString();
    
    xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + xml.Replace("\r\n", "").Replace(" ", "");
    
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(xml);
    
    Stream st = new MemoryStream(buffer);
    
    st.Flush();
    
    st.Position = 0;
    
    return st;
    
    }
    2.2 Fiddler测试方法(特别注意的是,request headers不要加入Content-Type: application/xml,否则会返回内部错误,也无法触发方法断点)
    clip_image010

    3 可供参看的网址

    3.1 http://www.britishdeveloper.co.uk/2011/01/how-to-post-rest-fiddler.html

  • 相关阅读:
    ACTION 的跳转与参数传递
    action 与 action 之间的跳转
    图片不存在时,显示一个默认的图片 (自己理解)
    java 防止表单重复提交(serlvet)
    java防止表单重复提交
    了解 Windows Azure 存储计费 – 带宽、事务和容量
    微软开放技术热烈祝贺开源社成立!
    “开源社”(开源联盟)成立
    Azure SQL 数据库的灵活缩放预览版简介
    通过 PowerShell 支持 Azure Traffic Manager 外部端点和权重轮询机制
  • 原文地址:https://www.cnblogs.com/gossip/p/2418469.html
Copyright © 2020-2023  润新知