none
WebHttp - WebServer RRS feed

  • Frage

  • Hallo,

     

    ich kenne die Technologie nicht im Detail und muss eine Ansteuerung, sprich Client erstellen.

     

    Das Senden scheint zu klappen, es kommt jedoch WebHttp Service returns HTTP

    415 “Unsupported Media Type" zurück.

    Wer ist Schuld, was ist falsch, wo ansetzen?

    Fragen über Fragen. Ich habe keine WSDL Datei und muss es in dieser Art ansteuern.

      

    Mein Test beruht auf das hier

                request.ContentType = "application/x-www-form-urlencoded";
    //Woher könnte ich wissen was hier einzutragen ist? Warum ist das keine Konstante, Enum, etc. Welche Möglichkeiten gibt es da
     
        // Create a request using a URL that can receive a post. 
                WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
                // Set the Method property of the request to POST.
                request.Method = "POST";
                // Create POST data and convert it to a byte array.
                string postData = "This is a test that posts this string to a Web server.";
                byte[] byteArray = Encoding.UTF8.GetBytes (postData);
                // Set the ContentType property of the WebRequest.
                request.ContentType = "application/x-www-form-urlencoded";
                // Set the ContentLength property of the WebRequest.
                request.ContentLength = byteArray.Length;

     

    Beispiel 2

    Was möchte ich?

       Kann mir jemand

    a) die Technologie erklären, was gegenüber Socket anders ist? Der Vorteil ist?

    b) Wie könnte ich es testen?

    c) Evtl. mit dem Tool https://sourceforge.net/projects/soapui/

     

    Evtl. ein Tutorial über das SOAPUI

     

    Vielen Dank im Voraus.

     

    Grüße Oliver

    Samstag, 24. Juni 2017 12:24

Antworten

  • Hallo Oliver,

    das Beispiel bzw. der dort angegebene URL ist natürlich, wie der Name schon sagt, nur ein Beispiel.

    Du kannst nichts an den URL

    http://www.contoso.com/PostAccepter.aspx

    senden, sondern musst dir klarerweise eine eigene Gegenstelle schaffen.

    Da Du von einem Kunden sprichst, stellt er dir ja ggfs. diese Gegenstelle bereit. In dem Fall musst Du ihn fragen, was Du in welcher Form an seinen Webservice schicken musst.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert O. Stippe Mittwoch, 28. Juni 2017 16:45
    Dienstag, 27. Juni 2017 21:51
    Moderator

Alle Antworten

  • Hallo Oliver,

    man müsste eigentlich eher das Gegenstück, sprich den Service, den Du da ansprichst, kennen.

    Wenn Du in deinem Code wirklich noch:

      http://www.contoso.com/PostAccepter.aspx

    stehen hast, ist das natürlich falsch. Du musst schon eine richtige Adresse als Ziel angeben.

    (Das Leerzeichen hinter dem URL vor " ist aber auch noch falsch, hat aber nichts mit dem Fehler zu tun)

    Request.ContentType kann kein Enum sein, da in der Eigenschaft alles mögliche vorkommen kann. Einige häufig verwendeten Werte sind bspw.:

    • multipart/form-data
    • application/x-www-form-urlencoded
    • application/json
    • application/xml

    Zusätzlich kann man auch weitere Angaben wie den Zeichensatz (charset) usw. in dem Header mit übergeben.

    Aber wie gesagt, letztendlich kann da alles mögliche drinstehen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Sonntag, 25. Juni 2017 11:12
    Moderator
  • man müsste eigentlich eher das Gegenstück, sprich den Service, den Du da ansprichst, kennen.


    Hi Stefan,

    ja sicher, request.ContentType = "application/x-www-form-urlencoded";

    Kann das die Ursache für den Fehler 415 sein?

    Muss ich das beim Kunden erfragen.

    Grüße Oliver

    Montag, 26. Juni 2017 17:18
  • Hallo Oliver,

    die Ursache kann alles mögliche sein. Die Meldung deutet zwar darauf hin, dass es am übermittelten ContentType liegt, sicher ist das aber nicht.

    Nur schade, dass Du auf die anderen Hinweise nicht eingegangen bist.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Montag, 26. Juni 2017 20:56
    Moderator
  • Nur schade, dass Du auf die anderen Hinweise nicht eingegangen bist.



    Hi Stefan,
    >Zusätzlich kann man auch weitere Angaben wie den Zeichensatz
    >(charset) usw. in dem Header mit übergeben.
    >Aber wie gesagt, letztendlich kann da alles mögliche drinstehen.

    • multipart/form-data
      application/x-www-form-urlencoded
      application/json
      application/xml
      application/soap+xml;charset=UTF-8
      application/Soap

    Ja, wie kann man das herausfinden, was der richtige String ist. Es ist eine SOAP Message.

    Ich habe eine eigene Adresse. Ich googelte, dann kam ich auf das. Hieraus nahm ich das Beispiel, die Vorlage.

    WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx");

    Grüße Oliver


    Dienstag, 27. Juni 2017 17:01
  • Hallo Oliver,

    das Beispiel bzw. der dort angegebene URL ist natürlich, wie der Name schon sagt, nur ein Beispiel.

    Du kannst nichts an den URL

    http://www.contoso.com/PostAccepter.aspx

    senden, sondern musst dir klarerweise eine eigene Gegenstelle schaffen.

    Da Du von einem Kunden sprichst, stellt er dir ja ggfs. diese Gegenstelle bereit. In dem Fall musst Du ihn fragen, was Du in welcher Form an seinen Webservice schicken musst.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert O. Stippe Mittwoch, 28. Juni 2017 16:45
    Dienstag, 27. Juni 2017 21:51
    Moderator