Avatar billede poulsgaard Praktikant
12. februar 2005 - 21:49 Der er 8 kommentarer og
1 løsning

POST, hvordan

Hej

Jeg har en XML string jeg gerne vil have sendt fra min WebForm1.apsx til en server.

Hvordan gør jeg det smartest (og nemmest). stringen er >10kb.

Jeg har prøvet med en HttpWebRequest men kan ikke rigtig få det til at fungere.

Jeg ved hvordan man "modtagere" en GET på serversiden, men hvordan er det med en POST ??

-på forhånd tak.
Avatar billede softspot Forsker
12. februar 2005 - 22:13 #1
POST data findes i Request.Form-collection.
Avatar billede arne_v Ekspert
12. februar 2005 - 22:15 #2
Client side POST er lige ud af landevejen:

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.domain.dk/noget.aspx");
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        StreamWriter post = new StreamWriter(req.GetRequestStream());
        post.Write("field1=value1&field2=value2");
        post.Close();
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stm = resp.GetResponseStream();

På server side kan du så ikke bare fiske det ud af:

Request.Form

eller hente en stream med:

Request.InputStream

og læse fra den ?
Avatar billede poulsgaard Praktikant
15. februar 2005 - 10:07 #3
Server Error in '/testc' Application.
--------------------------------------------------------------------------------

The remote server returned an error: (500) Internal Server Error.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Net.WebException: The remote server returned an error: (500) Internal Server Error.

Source Error:


Line 150:            post.Write("xmlstr="+Parameters);
Line 151:            post.Close();
Line 152:            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Line 153:            Stream stm = resp.GetResponseStream();
Line 154:            return stm.ToString();


Source File: c:\inetpub\wwwroot\testc\webform2.aspx.cs    Line: 152

Stack Trace:


[WebException: The remote server returned an error: (500) Internal Server Error.]
  System.Net.HttpWebRequest.CheckFinalStatus()
  System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
  System.Net.HttpWebRequest.GetResponse()
  testc.WebForm2.HttpPost1(String URI, String Parameters) in c:\inetpub\wwwroot\testc\webform2.aspx.cs:152
  testc.WebForm2.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\testc\webform2.aspx.cs:44
  System.Web.UI.Control.OnLoad(EventArgs e)
  System.Web.UI.Control.LoadRecursive()
  System.Web.UI.Page.ProcessRequestMain()




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET Version:1.1.4322.2032
Avatar billede poulsgaard Praktikant
15. februar 2005 - 10:08 #4
namespace testc
{
    /// <summary>
    /// Summary description for WebForm3.aspx
    /// </summary>
    public class WebForm3 : System.Web.UI.Page
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            //Response.Write("Hello");
           
            int loop1;
            NameValueCollection coll;

            //Load Form variables into NameValueCollection variable.
            coll=Request.Form;
            // Get names of all forms into a string array.
            String[] arr1 = coll.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                Response.Write("Form: " + arr1[loop1] + "<br>");
            }

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
}
Avatar billede arne_v Ekspert
15. februar 2005 - 21:32 #5
The remote server returned an error: (500) Internal Server Error.

lyder jo ikke for god.
Avatar billede arne_v Ekspert
15. februar 2005 - 21:33 #6
Er det din egen side du vil hente ??
Avatar billede poulsgaard Praktikant
16. februar 2005 - 10:41 #7
Ok, jeg har geninstalleret IIS'en
nu kan jeg fiske data ud på den anden side.
Sidste problem jeg har er at de er encodet så > = lt; osv
Hvad hedder funktionen til at dekode det ? (hvis den findes)
Avatar billede arne_v Ekspert
16. februar 2005 - 10:47 #8
HttpUtility.HtmlDecode
Avatar billede arne_v Ekspert
19. februar 2005 - 20:30 #9
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester