Answer 5
I am sorry to get back so late.
But I can not find a way to read a requestStream (no beginRead). I wrote a code like this
StreamReader GetUrlStream(string url, HttpWebRequest webRequest, Dictionary<string, string> postKeys)
{
try
{
if (webRequest == null)
{
webRequest = (HttpWebRequest)System.Net.WebRequest.Create(url);
}
webRequest.Credentials = new NetworkCredential("VersentiaUser", "password");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.SendChunked = true;
ms = AddPostKeys(postKeys);
totalSize = (int)ms.Length;
webRequest.ContentLength = totalSize;
Stream requestStream = webRequest.GetRequestStream();
chunkSize = Math.Min(2048 , totalSize);
requestStream.BeginWrite(ms.ToArray(), 0, chunkSize, WriteCallback, requestStream);
ms.Close();
ms.Dispose();
startTime = DateTime.Now;
WebResponse
response = (HttpWebResponse)webRequest.GetResponse();
endTime = DateTime.Now;
Encoding enc = Encoding.GetEncoding(1252);
var strResponse = new StreamReader(response.GetResponseStream(), enc);
return strResponse;
}
catch (WebException ex)
{
return null;
}
}
private void WriteCallback(IAsyncResult asynchronousResult)
{
Stream requestStream = (Stream) asynchronousResult.AsyncState;
requestStream.EndWrite(asynchronousResult);
totalWritten += chunkSize;
chunkSize = Math.Min(2048, (totalSize - totalWritten));
if (totalWritten < totalSize)
{
requestStream.BeginWrite(ms.ToArray(), totalWritten, chunkSize, WriteCallback, requestStream);
}
requestStream.Close();
requestStream.Dispose();
}
But I got Exception that "Concurrent IO read write operation is not allowed".
Please help.
Veena