diff options
Diffstat (limited to 'OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs')
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | 111 |
1 files changed, 54 insertions, 57 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs index b2c1c54..0135a6c 100644 --- a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs +++ b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | |||
@@ -57,80 +57,77 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
57 | { | 57 | { |
58 | WebRequest request = WebRequest.Create(requestUrl); | 58 | WebRequest request = WebRequest.Create(requestUrl); |
59 | request.Method = verb; | 59 | request.Method = verb; |
60 | string respstring = String.Empty; | ||
60 | 61 | ||
61 | if ((verb == "POST") || (verb == "PUT")) | 62 | using (MemoryStream buffer = new MemoryStream()) |
62 | { | 63 | { |
63 | request.ContentType = "text/www-form-urlencoded"; | 64 | if ((verb == "POST") || (verb == "PUT")) |
64 | |||
65 | MemoryStream buffer = new MemoryStream(); | ||
66 | int length = 0; | ||
67 | using (StreamWriter writer = new StreamWriter(buffer)) | ||
68 | { | 65 | { |
69 | writer.Write(obj); | 66 | request.ContentType = "text/www-form-urlencoded"; |
70 | writer.Flush(); | ||
71 | } | ||
72 | 67 | ||
73 | length = (int)obj.Length; | 68 | int length = 0; |
74 | request.ContentLength = length; | 69 | using (StreamWriter writer = new StreamWriter(buffer)) |
70 | { | ||
71 | writer.Write(obj); | ||
72 | writer.Flush(); | ||
73 | } | ||
75 | 74 | ||
76 | Stream requestStream = null; | 75 | length = (int)obj.Length; |
77 | try | 76 | request.ContentLength = length; |
78 | { | ||
79 | requestStream = request.GetRequestStream(); | ||
80 | requestStream.Write(buffer.ToArray(), 0, length); | ||
81 | } | ||
82 | catch (Exception e) | ||
83 | { | ||
84 | m_log.DebugFormat("[FORMS]: exception occured on sending request to {0}: " + e.ToString(), requestUrl); | ||
85 | } | ||
86 | finally | ||
87 | { | ||
88 | // If this is closed, it will be disposed internally, | ||
89 | // but the above write is asynchronous and may hit after | ||
90 | // we're through here. So the thread handling that will | ||
91 | // throw and put us back into the catch above. Isn't | ||
92 | // .NET great? | ||
93 | //if (requestStream != null) | ||
94 | // requestStream.Close(); | ||
95 | // Let's not close this | ||
96 | //buffer.Close(); | ||
97 | 77 | ||
78 | Stream requestStream = null; | ||
79 | try | ||
80 | { | ||
81 | requestStream = request.GetRequestStream(); | ||
82 | requestStream.Write(buffer.ToArray(), 0, length); | ||
83 | } | ||
84 | catch (Exception e) | ||
85 | { | ||
86 | m_log.DebugFormat("[FORMS]: exception occured on sending request to {0}: " + e.ToString(), requestUrl); | ||
87 | } | ||
88 | finally | ||
89 | { | ||
90 | if (requestStream != null) | ||
91 | requestStream.Close(); | ||
92 | } | ||
98 | } | 93 | } |
99 | } | ||
100 | |||
101 | string respstring = String.Empty; | ||
102 | 94 | ||
103 | try | 95 | try |
104 | { | ||
105 | using (WebResponse resp = request.GetResponse()) | ||
106 | { | 96 | { |
97 | <<<<<<< HEAD:OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | ||
107 | if (resp.ContentLength > 0) | 98 | if (resp.ContentLength > 0) |
99 | ======= | ||
100 | using (WebResponse resp = request.GetResponse()) | ||
101 | >>>>>>> e593607... Remove "Dwell" support from core and replace it with calls to methods:OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | ||
108 | { | 102 | { |
109 | Stream respStream = null; | 103 | if (resp.ContentLength != 0) |
110 | try | ||
111 | { | 104 | { |
112 | respStream = resp.GetResponseStream(); | 105 | Stream respStream = null; |
113 | using (StreamReader reader = new StreamReader(respStream)) | 106 | try |
114 | { | 107 | { |
115 | respstring = reader.ReadToEnd(); | 108 | respStream = resp.GetResponseStream(); |
109 | using (StreamReader reader = new StreamReader(respStream)) | ||
110 | { | ||
111 | respstring = reader.ReadToEnd(); | ||
112 | } | ||
113 | } | ||
114 | catch (Exception e) | ||
115 | { | ||
116 | m_log.DebugFormat("[FORMS]: exception occured on receiving reply " + e.ToString()); | ||
117 | } | ||
118 | finally | ||
119 | { | ||
120 | if (respStream != null) | ||
121 | respStream.Close(); | ||
116 | } | 122 | } |
117 | } | ||
118 | catch (Exception e) | ||
119 | { | ||
120 | m_log.DebugFormat("[FORMS]: exception occured on receiving reply " + e.ToString()); | ||
121 | } | ||
122 | finally | ||
123 | { | ||
124 | if (respStream != null) | ||
125 | respStream.Close(); | ||
126 | } | 123 | } |
127 | } | 124 | } |
128 | } | 125 | } |
129 | } | 126 | catch (System.InvalidOperationException) |
130 | catch (System.InvalidOperationException) | 127 | { |
131 | { | 128 | // This is what happens when there is invalid XML |
132 | // This is what happens when there is invalid XML | 129 | m_log.DebugFormat("[FORMS]: InvalidOperationException on receiving request"); |
133 | m_log.DebugFormat("[FORMS]: InvalidOperationException on receiving request"); | 130 | } |
134 | } | 131 | } |
135 | return respstring; | 132 | return respstring; |
136 | } | 133 | } |