如何在Xcode中将当前登录用户的名称发送至PHP
解决iOS中变量传递用户名到PHP服务的问题
嘿,我一眼就瞅出问题所在啦——你现在是把变量名username2直接当成字符串硬写到URL里了,PHP那边收到的参数值其实是"username2"这几个字符,而不是你获取到的真实用户名!
正确的写法应该这样:
方法1:Swift字符串插值(最简洁推荐)
直接用\(变量名)把变量值嵌入到字符串中,这是Swift里最直观的字符串拼接方式:
let username2 = NSUserName() // 这里用\(username2)替换原有的"username2"字面量 let urlPath: String = "http://127.0.0.1/PhpstormProjects/myiosapp/v1/MyWishes.php?username=\(username2)"
方法2:字符串拼接(传统方式)
如果习惯用传统的字符串拼接逻辑也可以:
let username2 = NSUserName() let urlPath: String = "http://127.0.0.1/PhpstormProjects/myiosapp/v1/MyWishes.php?username=" + username2
额外提醒:URL编码很重要!
如果用户名里包含空格、@、&这类特殊字符,直接拼接会导致URL格式无效,请求大概率失败。所以强烈建议先对用户名做URL安全编码:
let username2 = NSUserName() // 对用户名进行URL安全编码,过滤特殊字符 guard let encodedUsername = username2.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { // 处理编码失败的情况,比如提示用户用户名包含非法字符 return } // 用编码后的用户名拼接URL let urlPath: String = "http://127.0.0.1/PhpstormProjects/myiosapp/v1/MyWishes.php?username=\(encodedUsername)"
这样修改后,PHP服务就能收到正确的用户名参数啦~
内容的提问来源于stack exchange,提问作者Reema
相关产品推荐
相关产品推荐

