PHP写的API接口,别人调用失败

昨天,同事调用我用PHP写的API接口,死活不返回数据。
用浏览器和postman能返回数据,但是他调用这个接口就不行。我一度怀疑是他的问题。
起初,我是一脸懵逼的,因为我写的该项目的其它API接口,也曾经出现过不返回数据的情况,但是过一段时间又好了,这让我甚是不爽。

于是,以我过去的经验判断,可能是使用了PHP的“exit;”,导致服务器返回500错误,进而没有数据返回。
但是,我把exit修改成echo后,仍然没有解决问题。前前后后搞了一两个小时,还是没有解决。

最后实在不行,就去请教上司(他经验比较丰富,也得是经验丰富,帮我找到了原因)。
原来是因为我有的get参数中包括空格,这样就会出现一个问题:url地址错误,中文、空格等特殊字符都会造成这种情况。
可能是浏览器或者postman有自动处理空格的功能,但是我同事调用该接口时,肯定是没有处理的。

解决方法:
对GET或POST参数进行处理,调用urlencode()函数。
urlencode()编码:对字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位[十六进制数],空格则编码为加号(+)
urldecode()解码:还原 URL 编码字符串。

举例:

$param = "downloadTime desc";
$param = urlencode($param);
$url = "http://s.com/api.html?param=$param";
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,465评论 19 139
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,995评论 3 64
  • 期待了一整天的皮皮虾盛宴,因为下午去菜市场晚了,活蹦乱跳的皮皮虾早就被抢购一空。提前准备好的雪碧和RIO只能留到明...
    不看车阅读 268评论 0 0
  • 狗有佛性吗,没有 佛说众生皆平等,众生皆可成佛,为什么狗没佛性 因为你分别心以起 狗的佛性与我的分别心合干 那你有...
    紫耀职场阅读 310评论 0 0
  • 一 莎士比亚曾说过 “第一次见一个人,体温在38.6 °,就叫一见钟情! ” 李宗盛也在歌里唱到 “爱恋不过是一场...
    疯岩疯语sun阅读 916评论 0 1

友情链接更多精彩内容