none
Zjištění návratového HTTP Status ve webové službě

    Dotaz

  • Dobrý den,

    potřeboval bych zjistit jaký je návratový HTTP Status při volání webové služby (tj. 400, 404, atd. ). Některé stavy se dají odchytit pomocí exception, ale pochopitelně ne všechny.

    Předem děkuji za pomoc.
    23. září 2008 9:35

Odpovědi

  • Dobry den,

    to je mirne kontroverzni pozadavek. Proxy tridy jsou pri pouzivani web sluzeb uzitecne prave proto, ze vas odstinuji od nizkourovnovych detailu, jako je HTTP protokol a XML serializace, takze se muzet venovat pouze aplikaci, ktera je pak nezavisla na techto detailech.

    HTTP status je prave nizkourovnova vec, takze nespravna hodnota indikuje selhani jeste pred funkci webove sluzby - typicky nespravne nastaveni weboveho serveru. Takze muzete v tomto pripade zkusit pustit vlastni HttpWebRequest proti serveru a podivat se, co se vrati.

    Pokud pouzivate tradicni webovou sluzbu (tj. Add Web Reference, nikoliv WCF), tak jde teoreticky prepsat metodu GetWebResponse() ve vasi proxy tride. V ni muzete zavolat metodu bazove tridy, prozkoumat vysledek, a pak ho vratit zpatky ... ale jenom spekuluji, prakticky jsem to nezkousel.

    Michael Jurek

     

    30. září 2008 18:59
    Přispěvatel

Všechny reakce

  • Dobry den,

    to je mirne kontroverzni pozadavek. Proxy tridy jsou pri pouzivani web sluzeb uzitecne prave proto, ze vas odstinuji od nizkourovnovych detailu, jako je HTTP protokol a XML serializace, takze se muzet venovat pouze aplikaci, ktera je pak nezavisla na techto detailech.

    HTTP status je prave nizkourovnova vec, takze nespravna hodnota indikuje selhani jeste pred funkci webove sluzby - typicky nespravne nastaveni weboveho serveru. Takze muzete v tomto pripade zkusit pustit vlastni HttpWebRequest proti serveru a podivat se, co se vrati.

    Pokud pouzivate tradicni webovou sluzbu (tj. Add Web Reference, nikoliv WCF), tak jde teoreticky prepsat metodu GetWebResponse() ve vasi proxy tride. V ni muzete zavolat metodu bazove tridy, prozkoumat vysledek, a pak ho vratit zpatky ... ale jenom spekuluji, prakticky jsem to nezkousel.

    Michael Jurek

     

    30. září 2008 18:59
    Přispěvatel
  • Dobry den,

    Na zaklade toho jsem dal dohromady nasledujici kod:

    Code Snippet

    Protected Overrides Function GetWebResponse(ByVal request As WebRequest) As WebResponse
    Dim response As WebResponse

    response = MyBase.GetWebResponse(request)
    Dim statusCode As HttpStatusCode = DirectCast(response,HttpWebResponse).StatusCode

    MsgBox(Convert.ToDouble(statusCode).ToString)

    Return response
    End Function


           
    Jesli to je kontraverzni pozadavek nevim, to necham na jinych, ale faktem je, ze to pro svoji funkci (respektive akceptaci klientske casti) vyzaduje O2 SMS Connector .


    Dekuji za pomoc.
    1. října 2008 11:06