C# WebRequest ohne Respone... korrekter Aufruf?

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.103
Ich habe Folgenden Aufruf für MS SQL CLR geschrieben. Ich habe schon für die andere Sache viel Zeit verloren. Deswegen bin ich bei der Frage Faul und Erbitte eure Hilfe.

Es gibt zwei Szenarien.
1 - Man wartet auf den Request,
2 - Man wartet nicht, da es nicht notwendig ist.

Bei dem #2 ist halt die Frage, ob ich beim Aufruf "BeginGetResponse" auch die Ressource irgend wann mal freigeben muss. Wenn nicht, dann hat sich das Thema erledigt. Sonst muss ich mir genau ansehen wo ich die Ressourcen wieder freigeben muss.

Danke

Code:
        [Microsoft.SqlServer.Server.SqlProcedure(Name = "ext_web_request")]
        public static SqlInt32 ClrWebRequest(SqlString uri, SqlString userAgent, SqlString method, out SqlString res, [SqlClrInit.Attributes.Clr(Result = "bit = 0")]SqlBoolean responseRequired)
        {
            SqlInt32 result = 1;
            try
            {
                res = String.Empty;
                System.Net.WebRequest request = System.Net.HttpWebRequest.Create(uri.Value);

                if (userAgent.IsNull == false)
                    ((System.Net.HttpWebRequest)request).UserAgent = userAgent.Value;

                request.Method = (method.IsNull ? "GET" : method.Value);
                if (responseRequired.IsNull || responseRequired.IsFalse)
                {
                    request.BeginGetResponse(null, null) //<----------GENAU HIER
                }
                else
                {
                    using (var response = new System.IO.StreamReader(request.GetResponse().GetResponseStream(), Encoding.UTF8))
                    {
                        res = response.ReadToEnd();
                    }
                }
            }
            catch (Exception e)
            {
                result = 0;
                res = String.Concat(e.Message, Environment.NewLine, e.StackTrace);
            }

            return result;
        }
 
Zuletzt bearbeitet:
Nein nicht wirklich.
Würde aber generell falls möglich den request in ein using packen.

Frage mich gerade warum du dann überhaupt ein getresponse machst?!
 
wie kann man den Sonst ein Request verschicken? Ein TCP Basierender Protokoll ist halt so. Man schickt Request und bekommt automatisch Response. Zumindest sehe ich keine andere Möglichkeit einen Request zu versenden.

Ja gut, danke für die Antwort.
 
Zurück
Oben