【问题标题】:Using a URL with square brackets in MatLab在 MatLab 中使用带方括号的 URL
【发布时间】:2015-07-17 05:05:14
【问题描述】:

我正在使用 webread 从 RESTful Web 服务下载数据。 URL 构造为:

'http://someurl/service.php?query=data&options'

其中一个选项是“&includesensors[]=XXX”,其中 XXX 是传感器类型。此选项失败,因为 MatLab 将方括号转换为 '&includesensors%5B%5D=XXX'

关于如何让 MatLab 传递此选项而不弄乱它的任何想法?

【问题讨论】:

  • 你能澄清一下,'&includesensors[]=XXX' 是你输入的还是其他的?
  • 如果您没有找到更好的选择,我想您可以随时使用字符串替换对其进行后期处理:strrep('&includesensors%5B%5D=XXX' ,'%5B','[')
  • @milez 它被附加到 URL 作为使用 '&' 的选项。
  • @Dan 我不确定这将如何工作。我需要将 URL 传递给 webread。如何在将其传递给函数之前对其进行“后处理”?
  • @Carlos 我还以为你是从 webread 那里拿回来的……那没关系

标签: matlab url restful-url


【解决方案1】:

我的错误是构建 url,然后将其传递给 webread,例如:

url = 'http://someurl/service.php?query=data&includesensors[]=XXX'
data = webread(url);

这导致选项(包括“[]”)被传递给 urlencode(我猜)

但正确的做法是:

url = 'http://someurl/service.php';
data = webread(url,'query','data','includesensors','XXX');

正常工作。

【讨论】:

    【解决方案2】:

    尝试在大括号中输入括号:{[}

    Matlab 使用 LaTeX 格式。在这种情况下,方括号具有特定含义,因此您必须使用大括号对其进行转义。

    【讨论】:

    • 感谢@milez 的建议。这对我不起作用,但请参阅我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多