使用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并输入服务地址 ![]()
1.3 Post方法
1.3.1 Fiddlerà选择Composerà选择Post并输入服务地址 
1.3.3 在Request Headers写入参数头,如果要传递的是xml类型参数,需加入Content-Type: application/xml,否则服务无法使用 
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;
}
3 可供参看的网址
3.1 http://www.britishdeveloper.co.uk/2011/01/how-to-post-rest-fiddler.html


浙公网安备 33010602011771号