Exemple #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Logger.Text = "";
            XmlTextReader xmlr = null;

            System.Web.Services.Description.ServiceDescription  servdesc = null;
            System.Web.Services.Description.PortTypeCollection  ports    = null;
            System.Web.Services.Description.OperationCollection ops      = null;

            try
            {
                xmlr = new XmlTextReader(urltext.Text);
                xmlr.WhitespaceHandling = WhitespaceHandling.None;
                servdesc     = System.Web.Services.Description.ServiceDescription.Read(xmlr);
                ports        = servdesc.PortTypes;
                Logger.Text += " *** Found " + ports.Count + " portType(s) *** \r\n";
                for (int j = 0; j < ports.Count; j++)
                {
                    ops          = ports[j].Operations;
                    Logger.Text += " --- Found " + ops.Count + " operation(s) in : " + (j + 1) + " ---\r\n";
                    for (int i = 0; i < ops.Count; i++)
                    {
                        Logger.Text += ops[i].Name + "->" + "\r\n";
                        System.Web.Services.Description.OperationMessageCollection iter = ops[i].Messages;
                        //Message msgiter = null;
                        for (int k = 0; k < iter.Count; k++)
                        {
                            Logger.Text += iter[k].Message.Name + "\r\n";
                        }
                    }
                }

                /*
                 * while (xmlr.Read())
                 * {
                 *  switch (xmlr.NodeType)
                 *  {
                 *      case XmlNodeType.Element:
                 *
                 *          Logger.Text += xmlr.Name + "->" + xmlr.R + "\r\n";
                 *          break;
                 *      case XmlNodeType.EndElement:
                 *          break;
                 *      default:
                 *          break;
                 *  }
                 * }
                 */
            }
            catch (XmlException xe)
            {
                Logger.Text += xe.ToString();
            }
            finally
            {
                if (xmlr != null)
                {
                    xmlr.Close();
                }
            }
        }
Exemple #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            Logger.Text = "";
            XmlTextReader xmlr = null;

            System.Web.Services.Description.ServiceDescription  servdesc = null;
            System.Web.Services.Description.PortTypeCollection  ports    = null;
            System.Web.Services.Description.OperationCollection ops      = null;
            System.Xml.Serialization.XmlSchemas schemas = null;

            for (int i = 0; i < httpheaderlist.Items.Count; i++)
            {
                httpheaderlist.Items.RemoveAt(i);
            }
            if (!urltext.Text.StartsWith("http"))
            {
                MessageBox.Show("Please enter a URL starting with http");
                return;
            }
            if (urltext.Text.IndexOf("://") == -1)
            {
                MessageBox.Show("Did you forget the protocol like http:// or https:// ?" +
                                "\r\n E.g., http://soap.amazon.com/schemas2/AmazonWebServices.wsdl");
                return;
            }
            try
            {
                xmlr = new XmlTextReader(urltext.Text);
                xmlr.WhitespaceHandling = WhitespaceHandling.None;
                servdesc     = System.Web.Services.Description.ServiceDescription.Read(xmlr);
                schemas      = servdesc.Types.Schemas;
                Logger.Text += "=== Found " + schemas.Count + " schema(s)===\r\n";

                for (int k = 0; k < schemas.Count; k++)
                {
                    XmlSchemaObjectCollection xmlelem    = schemas[k].Items;
                    XmlSchemaObjectEnumerator enumerator = xmlelem.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if (enumerator.Current is XmlSchemaElement)
                        {
                            XmlSchemaElement xse = (XmlSchemaElement)enumerator.Current;
                            Logger.Text += xse.Name + '=' + xse.SchemaType + ", ";
                            TraverseParticle(xse);
                        }
                        else
                        {
                            if (enumerator.Current is XmlSchemaComplexType)
                            {
                                XmlSchemaComplexType xsct = (XmlSchemaComplexType)enumerator.Current;
                                Logger.Text += '\'' + xsct.Name + ": ";
                                TraverseParticle(xsct.Particle);
                                if (xsct.ContentModel is XmlSchemaSimpleContent)
                                {
                                    Logger.Text += "Simple; ";
                                }
                                else
                                {
                                    //XmlSchemaComplexContent complexContent = (XmlSchemaComplexContent)xsct.ContentModel;
                                    if (xsct.ContentModel is XmlSchemaComplexContent)
                                    {
                                        Logger.Text += "Complex; ";
                                    }
                                }
                                Logger.Text += "\',";
                            }
                        }
                    }
                    Logger.Text += "\r\n";
                }

                ports        = servdesc.PortTypes;
                Logger.Text += " *** Found " + ports.Count + " portType(s) *** \r\n";
                TreeNode tn      = null;
                TreeNode msgNode = null;
                TreeNode root    = new TreeNode(urltext.Text);
                treeView1.Nodes.Add(root);
                for (int j = 0; j < ports.Count; j++)
                {
                    ops          = ports[j].Operations;
                    Logger.Text += " --- Found " + ops.Count + " operation(s) in : " + (j + 1) + " ---\r\n";
                    for (int i = 0; i < ops.Count; i++)
                    {
                        Logger.Text += ops[i].Name + "->" + "\r\n";
                        tn           = new TreeNode(ops[i].Name);
                        root.Nodes.Add(tn);
                        System.Web.Services.Description.OperationMessageCollection iter = ops[i].Messages;
                        //Message msgiter = null;
                        for (int k = 0; k < iter.Count; k++)
                        {
                            Logger.Text += iter[k].Message.Name + "\r\n";
                            msgNode      = new TreeNode(iter[k].Message.Name);
                            tn.Nodes.Add(msgNode);
                        }
                    }
                }
                GenerateSOAP();

                /*
                 * while (xmlr.Read())
                 * {
                 *  switch (xmlr.NodeType)
                 *  {
                 *      case XmlNodeType.Element:
                 *
                 *          Logger.Text += xmlr.Name + "->" + xmlr.R + "\r\n";
                 *          break;
                 *      case XmlNodeType.EndElement:
                 *          break;
                 *      default:
                 *          break;
                 *  }
                 * }
                 */
            }
            catch (XmlException xe)
            {
                Logger.Text += xe.StackTrace;
            }

            catch (Exception ex)
            {
                Logger.Text += ex.StackTrace;
            }
            finally
            {
                if (xmlr != null)
                {
                    xmlr.Close();
                }
            }
        }