HTTPWebRequest - Strange Behavior: Request is not sent unless BeginGetResponse is invoked


i working httpwebrequest , observed strange behavior.

http request not reach @ server if not call begingetresponse.

in more detail, create http request , call begingetrequeststream; in callback, stream endgetrequeststream , write message stream , close stream.

on destination side (destination of http request) observe whether request arrives. observation though close stream, unless call begingetresponse, request not sent destination.

true?

if is, why not reported in documentation? also, isn't strange design, because name of method begingetresponse, while mean begintosendrequestandgetresponse.

code below:

private void xyz(object sender, routedeventargs e)
{ uri uri = new uri(...
httpwebrequest request = (httpwebrequest) webrequest.create(uri);
request.contenttype = "text/plain";
request.method = "post";
request.begingetrequeststream(onrequeststreamready, request);
}
void onrequeststreamready(iasyncresult result)
{
httpwebrequest request = result.asyncstate httpwebrequest;
stream stream = request.endgetrequeststream(result);
byte[] msg = new byte[1024];
stream.write(msg, 0, msg.length);
stream.close();
//request.begingetresponse(onresponseready, request)
}

usage of name stream confuse me. not stream remote server, byte array. if real stream, when write it, unless there buffering should reach other side (especially after close it).

i.m.h.o, begingetresponse should have been designed invoked if care response , closing of stream should have been enough notify other side request completed.


Silverlight  >  Programming Silverlight with .NET – General



Comments

Popular posts from this blog

Conditional formatting a graph vertical axis in SSRS 2012 charts

Register with Power BI failed

SQL server replication error Cannot find the dbo or user defined function........