使用具有特殊字符的 url 发出获取请求


Making a get request with a url that has special characters

>我正在尝试提出此请求

fopen("http://192.168.0.116:9090/sendsms?phone=4456666&text=url#&password=","r");

从我的Android设备发送短信,但我似乎无法成功发送消息,我怀疑#使事情复杂化。

url 中的#必须作为消息本身的一部分保留在那里。

phone是电话号码,text是短信。

如何使获取请求工作?

是的,#字符表示 URL 中的一个片段,因此现在实际上忽略了之后的部分。您需要正确转义它,例如:

$myUrl = 'http://192.168.0.116:9090/sendsms?'.http_build_query([
    'phone' => '4456666',
    'text' => 'url#',
    'password' => '',
]);
文档

在这里关于"http_build_query"。

您还可以使用 urlencode 正确转义各个值。

这应该有效

fopen("http://192.168.0.116:9090/sendsms?phone=4456666&text=url%23&password=","r");

正如# %23