gpt4 book ai didi

php - 通过 HTTPHeaderField 传递值时出现有趣的问题

转载 作者:行者123 更新时间:2023-11-30 13:44:58 24 4
gpt4 key购买 nike

我试图将一些带有空格和特殊字符的值从 Swift 程序传递到 php 脚本,方法是使用以下代码将它们归因于 HTTPHeaderFields:

let theRequest=NSMutableURLRequest(URL:NSURL(string:urlString)!, cachePolicy:.ReloadIgnoringLocalAndRemoteCacheData,
timeoutInterval:100.0)
theRequest.addValue(self.name, forHTTPHeaderField: "name")
theRequest.addValue(self.abbot, forHTTPHeaderField: "abbot")
theRequest.addValue(self.address, forHTTPHeaderField: "address")
theRequest.addValue(self.email!, forHTTPHeaderField: "email")
theRequest.addValue(self.phone!, forHTTPHeaderField: "phone")
theRequest.addValue(self.website!, forHTTPHeaderField: "website")

由 php 脚本接收:

$name=$_SERVER['HTTP_NAME'];
$abbot=$_SERVER['HTTP_ABBOT'];
$address=$_SERVER['HTTP_ADDRESS'];
$email=$_SERVER['HTTP_EMAIL'];
$phone=$_SERVER['HTTP_PHONE'];
$website=$_SERVER['HTTP_WEBSITE'];

这一机制适用于所有变量,但不适用于地址变量。当我执行调用时出现错误:

PHP Notice: Undefined index: HTTP_ADDRESS in /var/www/html/iPhone/iPuja/insertMonastery.php on line 9

在 php 脚本中;我尝试在 HTTP_ADDRESS 是保留字的情况下将地址名称更改为其他字符串,但无济于事。问题可能是什么?

谢谢

最佳答案

问题是由于我没有对字符串进行 URLEncode。一旦使用:

theRequest.addValue(self.address.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!, forHTTPHeaderField: "address")

该值已通过;由于某种原因,在发送带有特殊字符的非 urlencoded 字符串时不会给出错误,而是不会发送任何内容。在 php 脚本中,我当然必须对内容进行 urldecode 并设置:

$mysqli->query("SET NAMES utf8");

为了处理重音字符串和其他特殊字符。

关于php - 通过 HTTPHeaderField 传递值时出现有趣的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com