コード例 #1
0
 protected void SendParams(Uri uri, string method)
 {
     using (var nvpWriter = new NvpWriter(Request.Params))
     {
         nvpWriter.WriteParamsFromUri(uri, method);
     }
 }
コード例 #2
0
        public void ManyParameters()
        {
            var dict = new System.Collections.Generic.Dictionary <string, string> {
                { "HELLO", "WORLD" },
                { "FASTCGINET IS", "AWESOME" },
                { "THIS TEST", "SHALL PASS" }
            };

            using (var s = new FastCgiStreamImpl(false))
            {
                using (var writer = new NvpWriter(s))
                {
                    foreach (var param in dict)
                    {
                        writer.Write(param.Key, param.Value);
                    }

                    s.Position = 0;
                    using (var reader = new NvpReader(s))
                    {
                        NameValuePair param;
                        while ((param = reader.Read()) != null)
                        {
                            Assert.AreEqual(dict[param.Name], param.Value);
                        }
                    }
                }
            }
        }
コード例 #3
0
        public void CreateAndReadParamsWithOneParameter()
        {
            using (var paramsRec = new ParamsRecord(1))
            {
                using (var writer = new NvpWriter(paramsRec.Contents))
                {
                    writer.Write("TEST", "WHATEVER");

                    var bytes  = paramsRec.GetBytes().ToList();
                    var header = bytes[0];
                    int endOfRecord;
                    using (var receivedRec = (ParamsRecord)RecordFactory.CreateRecordFromHeader(header.Array, header.Offset, header.Count, out endOfRecord))
                    {
                        Assert.AreEqual(paramsRec.ContentLength, receivedRec.ContentLength);
                        for (int i = 1; i < bytes.Count; ++i)
                        {
                            Assert.AreEqual(-1, endOfRecord);
                            receivedRec.FeedBytes(bytes[i].Array, bytes[i].Offset, bytes[i].Count, out endOfRecord);
                        }

                        receivedRec.Contents.Position = 0;
                        using (var reader = new NvpReader(receivedRec.Contents))
                        {
                            NameValuePair onlyParameterAdded = reader.Read();
                            Assert.AreEqual("TEST", onlyParameterAdded.Name);
                            Assert.AreEqual("WHATEVER", onlyParameterAdded.Value);
                        }
                    }
                }
            }
        }
コード例 #4
0
        public void OneParameter()
        {
            using (var s = new FastCgiStreamImpl(false))
            {
                using (var writer = new NvpWriter(s))
                {
                    writer.Write("HELLO", "WORLD");

                    s.Position = 0;
                    using (var reader = new NvpReader(s))
                    {
                        var param = reader.Read();
                        Assert.AreEqual("HELLO", param.Name);
                        Assert.AreEqual("WORLD", param.Value);
                    }
                }
            }
        }
コード例 #5
0
        public void CreateAndReadParamsWithManyParameters()
        {
            int numParams = 100;

            using (var paramsRec = new ParamsRecord(1))
            {
                using (var writer = new NvpWriter(paramsRec.Contents))
                {
                    for (int i = 0; i < numParams; ++i)
                    {
                        writer.Write("TEST" + i, "WHATEVER" + i);
                    }
                }

                var bytes  = paramsRec.GetBytes().ToList();
                var header = bytes[0];
                int endOfRecord;
                using (var receivedRec = (ParamsRecord)RecordFactory.CreateRecordFromHeader(header.Array, header.Offset, header.Count, out endOfRecord))
                {
                    Assert.AreEqual(paramsRec.ContentLength, receivedRec.ContentLength);
                    for (int i = 1; i < bytes.Count; ++i)
                    {
                        Assert.AreEqual(-1, endOfRecord);
                        receivedRec.FeedBytes(bytes[i].Array, bytes[i].Offset, bytes[i].Count, out endOfRecord);
                    }

                    int paramsCount = 0;
                    receivedRec.Contents.Position = 0;
                    using (var reader = new NvpReader(receivedRec.Contents))
                    {
                        NameValuePair par;
                        while ((par = reader.Read()) != null)
                        {
                            Assert.AreEqual("TEST" + paramsCount, par.Name);
                            Assert.AreEqual("WHATEVER" + paramsCount, par.Value);
                            paramsCount++;
                        }
                    }

                    Assert.AreEqual(numParams, paramsCount);
                }
            }
        }
コード例 #6
0
ファイル: Browser.cs プロジェクト: james-andrewsmith/Fos
 protected void SendParams(Uri uri, string method)
 {
     using (var nvpWriter = new NvpWriter(Request.Params))
     {
         nvpWriter.WriteParamsFromUri(uri, method);
     }
 }