HTTP URL拆分失败
本文关键字:失败 拆分 URL HTTP | 更新日期: 2023-09-27 18:27:29
我有一个向客户端返回图像的服务器。每当返回一个图像时,客户端都会请求下一个图像(当然还有一个不同的url)。这意味着我必须获取url请求,并以某种方式将其拆分并解析,这样我的服务器才能知道请求的是哪个图像。
我目前有当前设置:
这就是处理请求的地方,正如你所看到的,我目前正在做的是专门询问图像所在的url。如果传入的请求url相同,那么图像就会被发回。我需要某种机制来请求图像的url,这取决于传入请求的url。因此,在返回图像0,0,0.png后,客户端将要求0,0,1.png,依此类推。
有什么提示我该怎么做吗?
if (p.http_url.Equals("/MapServer/tile/0/0/0"))
{
Bitmap bmap = new Bitmap("../MapServer/tile/0,0,0.png");
MemoryStream memStream = new MemoryStream();
bmap.Save(memStream, ImageFormat.Png);
byte[] buffer = memStream.ToArray();
p.outputStream.Write(buffer, 0, buffer.Length);
我想应该用类似的东西来做,但我有点卡住了。
public void urlSplitter()
{
string http_url_split = http_url;
string[] splitString = http_url_split.Split('/');
int index = splitString.Length - 1;
您可以使用正则表达式来匹配URL并在文件路径中填写匹配项:
Regex tileRegex = new Regex(@"/MapServer/tile/([0-9]+)/([0-9]+)/([0-9]+)");
var matches = tileRegex.Match(p.http_url);
if (matches.Success)
{
string path = "../MapServer/tile/{0},{1},{2}.png";
path = string.Format(path, matches.Groups[1].Captures[0],
matches.Groups[2].Captures[0],
matches.Groups[3].Captures[0]);
Bitmap bmap = new Bitmap(path);
...
}
您也可以部分匹配URL:
if (p.http_url.StartsWith("/MapServer/tile/"))
{
...
}