V1.0.1
parent
f75846a0a7
commit
68f957d6bc
|
@ -36,8 +36,8 @@ namespace ln.protocols.helper
|
|||
}
|
||||
else if (colon > 0)
|
||||
{
|
||||
headerName = headerLine.Substring(0, colon);
|
||||
Add(headerName, headerLine.Substring(colon + 1));
|
||||
headerName = headerLine.Substring(0, colon).Trim();
|
||||
Add(headerName, headerLine.Substring(colon + 1).Trim());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ namespace ln.protocols.helper
|
|||
set => Set(headerName, value);
|
||||
}
|
||||
|
||||
bool TryGetHeader(string headerName, out Header header) =>
|
||||
public bool TryGetHeader(string headerName, out Header header) =>
|
||||
_headers.TryGetValue(headerName.ToLower(), out header);
|
||||
|
||||
public bool TryGetValue(string headerName, out string headerValue)
|
||||
|
@ -179,9 +179,11 @@ namespace ln.protocols.helper
|
|||
}
|
||||
|
||||
public string UpperName { get; private set; }
|
||||
|
||||
public string Value { get; set; }
|
||||
|
||||
private Dictionary<string, string> parameters;
|
||||
|
||||
|
||||
public Header(string headerName)
|
||||
{
|
||||
Name = headerName;
|
||||
|
@ -193,5 +195,53 @@ namespace ln.protocols.helper
|
|||
Name = headerName;
|
||||
Value = headerValue;
|
||||
}
|
||||
|
||||
public bool TryGetParameter(string parameterName, out string parameterValue)
|
||||
{
|
||||
if (parameters is null)
|
||||
ParseParameters();
|
||||
|
||||
return parameters.TryGetValue(parameterName, out parameterValue);
|
||||
}
|
||||
public bool ContainsParameter(string parameterName)
|
||||
{
|
||||
if (parameters is null)
|
||||
ParseParameters();
|
||||
|
||||
return parameters.ContainsKey(parameterName);
|
||||
}
|
||||
|
||||
|
||||
public Header ParseParameters()
|
||||
{
|
||||
parameters = new Dictionary<string, string>();
|
||||
|
||||
int idxSemicolon = Value.IndexOf(';');
|
||||
if (idxSemicolon != -1)
|
||||
{
|
||||
string[] ptoks = Value.Split(';');
|
||||
|
||||
foreach (string ptok in ptoks)
|
||||
{
|
||||
int idxEqual = ptok.IndexOf('=');
|
||||
string pn, pv;
|
||||
if (idxEqual != -1)
|
||||
{
|
||||
pn = ptok.Substring(0, idxEqual).Trim();
|
||||
pv = ptok.Substring(idxEqual + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
pn = ptok.Trim();
|
||||
pv = "";
|
||||
}
|
||||
|
||||
parameters.Add(pn, pv);
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@ namespace ln.protocols.helper
|
|||
request.Headers.Clear();
|
||||
request.Headers.Read(stream);
|
||||
|
||||
if (request.Headers.TryGetInteger("content-stream", out int contentLength) && (contentLength > 0))
|
||||
if (request.Headers.TryGetInteger("content-length", out int contentLength) && (contentLength > 0))
|
||||
{
|
||||
request.ContentStream = new RequestContentStream(stream, contentLength);
|
||||
}
|
||||
|
|
|
@ -32,5 +32,8 @@ namespace ln.protocols.helper
|
|||
return encoding.GetString(line, 0, n);
|
||||
return null;
|
||||
}
|
||||
|
||||
public static TextReader TextReader(this Stream stream) => new StreamReader(stream);
|
||||
|
||||
}
|
||||
}
|
|
@ -3,6 +3,8 @@
|
|||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<LangVersion>9</LangVersion>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<PackageVersion>1.0.1</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
Loading…
Reference in New Issue