TileServer 的 GetCapabilities 查询 Returns 格式错误 JSON
GetCapabilities Query for TileServer Returns Malformed JSON
我已经安装了TileServer.php。当我导航到它时,我可以看到我的磁贴(所以它正在工作)。
我的问题是,当我查询 getCapabilities 文件时,生成的 json 文件格式不正确。
json 在 json 响应的开头以部分查询字符串为前缀。
这是完整的查询字符串:
http://<=我的ip=>/tileserver/index.html?service=wmts&request=getcapabilities&version=1.0.0
我收到的实际 Json 响应
(注意 wmts&request 是前缀,否则有效 json)
====JSON===============================
wmts&request([{"name":"190322","type":"overlay","description":"190322","version":"1.1" “格式”:“PNG”,“范围”:[174.92249449474565,-36.991878207885335,174.93635413927785,-36.98244705946717],“最大缩放”:22,“最小缩放”:14,“基本名称”:1313_190322”,” profile":"mercator","scale":1,"tiles": ...
============================================= =====
我尝试删除部分查询字符串以测试结果,奇怪的是它再次获取了部分查询字符串。
这是我测试过的完整查询字符串:
http://<=我的ip=>/tileserver/index.html?request=getcapabilities&version=1.0.0
(我收到的实际 Json 回复)
====JSON===============================
getcapabilities&version([{"name":"190322","type":"overlay","description":"190322","version":"1.1" “格式”:“PNG”,“范围”:[174.92249449474565,-36.991878207885335,174.93635413927785,-36.98244705946717],“最大缩放”:22,“最小缩放”:14,“基本名称”:1313_190322”,” profile":"mercator","scale":1,"tiles": ...
============================================= ==========
我想我可以解析出来,但我想找到这个问题的原因。
我正在使用 ASP.Net 5.0.
我的代码大致如下:
private static readonly string _tileserver_ip = "http://<my ip>/tileserver/";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var query = new Dictionary<string, string>
{
["service"] = "wmts",
["request"] = "getcapabilities",
["version"] = "1.0.0"
};
var response = await client.GetAsync(QueryHelpers.AddQueryString(_tileserver_ip, query));
var capabilitiesString = await response.Content.ReadAsStringAsync();
// the result of the query string => "http://<my ip>/tileserver/?service=wmts&request=getcapabilities&version=1.0.0"
编辑
哎呀!原来我以完全错误的方式从 TileServer 请求 getCapabilities 文件。
我会把它留在这里,以防它对以后的人有帮助。
这是正确的 URL:http://<= my url =>/tileserver/1.0.0/WMTSCapabilities.xml/wmts
我找到了答案,我会把这个 post 留在这里,以备日后对某人有帮助。
在我的 URL 中,我使用 index.html 作为索引页,但是我应该使用索引 .json 来代替。
我一切换到 .json,就收到了 JSON 的回复,正如我所期待的那样。
完整 URL 查询字符串:
http://<=我的ip=>/tileserver/index.json?service=wmts&request=getcapabilities&version=1.0.0
我已经安装了TileServer.php。当我导航到它时,我可以看到我的磁贴(所以它正在工作)。
我的问题是,当我查询 getCapabilities 文件时,生成的 json 文件格式不正确。
json 在 json 响应的开头以部分查询字符串为前缀。
这是完整的查询字符串:
http://<=我的ip=>/tileserver/index.html?service=wmts&request=getcapabilities&version=1.0.0
我收到的实际 Json 响应
(注意 wmts&request 是前缀,否则有效 json)
====JSON===============================
wmts&request([{"name":"190322","type":"overlay","description":"190322","version":"1.1" “格式”:“PNG”,“范围”:[174.92249449474565,-36.991878207885335,174.93635413927785,-36.98244705946717],“最大缩放”:22,“最小缩放”:14,“基本名称”:1313_190322”,” profile":"mercator","scale":1,"tiles": ...
============================================= =====
我尝试删除部分查询字符串以测试结果,奇怪的是它再次获取了部分查询字符串。
这是我测试过的完整查询字符串:
http://<=我的ip=>/tileserver/index.html?request=getcapabilities&version=1.0.0
(我收到的实际 Json 回复)
====JSON===============================
getcapabilities&version([{"name":"190322","type":"overlay","description":"190322","version":"1.1" “格式”:“PNG”,“范围”:[174.92249449474565,-36.991878207885335,174.93635413927785,-36.98244705946717],“最大缩放”:22,“最小缩放”:14,“基本名称”:1313_190322”,” profile":"mercator","scale":1,"tiles": ...
============================================= ==========
我想我可以解析出来,但我想找到这个问题的原因。
我正在使用 ASP.Net 5.0.
我的代码大致如下:
private static readonly string _tileserver_ip = "http://<my ip>/tileserver/";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var query = new Dictionary<string, string>
{
["service"] = "wmts",
["request"] = "getcapabilities",
["version"] = "1.0.0"
};
var response = await client.GetAsync(QueryHelpers.AddQueryString(_tileserver_ip, query));
var capabilitiesString = await response.Content.ReadAsStringAsync();
// the result of the query string => "http://<my ip>/tileserver/?service=wmts&request=getcapabilities&version=1.0.0"
编辑
哎呀!原来我以完全错误的方式从 TileServer 请求 getCapabilities 文件。
我会把它留在这里,以防它对以后的人有帮助。
这是正确的 URL:http://<= my url =>/tileserver/1.0.0/WMTSCapabilities.xml/wmts
我找到了答案,我会把这个 post 留在这里,以备日后对某人有帮助。
在我的 URL 中,我使用 index.html 作为索引页,但是我应该使用索引 .json 来代替。
我一切换到 .json,就收到了 JSON 的回复,正如我所期待的那样。
完整 URL 查询字符串:
http://<=我的ip=>/tileserver/index.json?service=wmts&request=getcapabilities&version=1.0.0