本文整理汇总了C#中System.IO.StringReader.ReadRequestLine方法的典型用法代码示例。如果您正苦于以下问题:C# StringReader.ReadRequestLine方法的具体用法?C# StringReader.ReadRequestLine怎么用?C# StringReader.ReadRequestLine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.StringReader
的用法示例。
在下文中一共展示了StringReader.ReadRequestLine方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BeginRequestInternal
public IEnumerable<object> BeginRequestInternal(ISocket socket)
{
var bufferHeaders = new ContinuationState<LinkedList<ArraySegment<byte>>>(socket.BufferHeaders());
yield return bufferHeaders;
var headerBuffers = bufferHeaders.Result;
Dictionary<string, object> env = new Dictionary<string, object>();
var bodyDataReadWithHeaders = headerBuffers.Last.Value;
headerBuffers.RemoveLast();
var headersString = headerBuffers.GetString();
var reader = new StringReader(headersString);
var requestLine = reader.ReadRequestLine();
var headers = reader.ReadHeaders();
env["Owin.RequestMethod"] = requestLine.Verb;
env["Owin.RequestUri"] = requestLine.RequestUri;
env["Owin.RequestHeaders"] = headers;
env["Owin.BaseUri"] = "";
env["Owin.RemoteEndPoint"] = socket.RemoteEndPoint;
env["Owin.RequestBody"] = CreateReadBody(socket, bodyDataReadWithHeaders);
// TODO provide better values
env["Owin.ServerName"] = "";
env["Owin.ServerPort"] = 0;
env["Owin.UriScheme"] = "http";
yield return env;
}
示例2: Begin
public IObservable<Unit> Begin()
{
return Observable.CreateWithDisposable<Unit>(o =>
{
// would be nice some day to parse the request with a fancy state machine
// for lower memory usage.
Trace.Write("Beginning request.");
return socket.ReadHeaders().Subscribe(headerBuffers =>
{
bodyDataReadWithHeaders = headerBuffers.Last.Value;
headerBuffers.RemoveLast();
var reader = new StringReader(headerBuffers.GetString());
this.requestLine = reader.ReadRequestLine();
Headers = reader.ReadHeaders();
reader.Dispose(); // necessary?
Trace.Write("Request began.");
},
e =>
{
o.OnError(e);
},
() =>
{
o.OnCompleted();
});
});
}
示例3: GivenHttpVersion
public void GivenHttpVersion()
{
var reader = new StringReader("asdas df asdf");
var requestLine = reader.ReadRequestLine();
Assert.AreEqual("asdf", requestLine.HttpVersion);
}
示例4: DefaultHttpVersion
public void DefaultHttpVersion()
{
var reader = new StringReader("asdas df");
var requestLine = reader.ReadRequestLine();
Assert.AreEqual("HTTP/1.0", requestLine.HttpVersion);
}
示例5: CreateRequest
public static IRequest CreateRequest(ISocket socket, LinkedList<ArraySegment<byte>> headerBuffers)
{
var bodyDataReadWithHeaders = headerBuffers.Last.Value;
headerBuffers.RemoveLast();
var headersString = headerBuffers.GetString();
var reader = new StringReader(headersString);
var requestLine = reader.ReadRequestLine();
var headers = reader.ReadHeaders();
var context = new Dictionary<string, object>();
return new KayakRequest(socket, requestLine, headers, context, bodyDataReadWithHeaders);
}
示例6: MalformedStatusLine4
public void MalformedStatusLine4()
{
var reader = new StringReader("asd asd d fs aaaa ");
reader.ReadRequestLine();
}
示例7: MalformedStatusLine3
public void MalformedStatusLine3()
{
var reader = new StringReader("asdasd fds sd dsfasdf");
reader.ReadRequestLine();
}
示例8: EmptyStatusLine
public void EmptyStatusLine()
{
var reader = new StringReader("");
reader.ReadRequestLine();
}