菜鸟教程小白 发表于 2022-12-11 19:30:46

php - POST 不工作 SWIFT PHP


                                            <p><div>
            <aside class="s-notice s-notice__info post-notice js-post-notice mb16"role="status">
      <div class="d-flex fd-column fw-nowrap">
            <div class="d-flex fw-nowrap">
                <div class="flex--item wmn0 fl1 lh-lg">
                  <div class="flex--item fl1 lh-lg">
                        <b>已结束。</b>此问题是 <a href="https://stackoverflow.com/help/closed-questions" rel="noreferrer noopener nofollow">not reproducible or was caused by typos</a> .它目前不接受答案。
                        
                  <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>一些想法:</p>

<ol>
<li><p>在失败时,你应该将 <code>message</code> 设置为 <code>$mysqli->error</code> 而不仅仅是 <code>"FAILURE!"</code>,所以你可以看到失败的原因。</p></li>
<li><p>我建议您在尝试查询之前移动“是否连接失败”逻辑。我还建议您将其更改为输出表示连接失败并退出的 JSON,而不仅仅是执行 <code>die</code>。稍后,当您改进 Swift 代码以解析错误时,将所有服务器消息保存为 JSON 会很有用。</p></li>
<li><p>您应该更改 PHP 以使用 <a href="http://php.net/manual/en/mysqli.real-escape-string.php" rel="noreferrer noopener nofollow">real_escape_string</a> 转义参数.否则,如果您的任何值包含 <code>'</code> 字符,您的 SQL 将失败。 (您也容易受到 SQL 注入(inject)攻击。)</p></li>
<li><p>您应该更改 Swift 以百分比转义请求的 <code>httpBody</code> 中包含的值。见 <a href="https://stackoverflow.com/a/28027627/1271826" rel="noreferrer noopener nofollow">https://stackoverflow.com/a/28027627/1271826</a>举些例子。或者使用像 Alamofire 这样的东西来为你解决这个问题。但就目前而言:</p>

<ul>
<li><p>如果这些值中的任何一个包含 <code>+</code> 字符,它可能会被替换为空格。</p></li>
<li><p>如果这些值中的任何一个包含 <code>&</code> 字符,则最终会截断该字段。</p></li>
<li><p>如果这些值中的任何一个包含任何其他保留字符,则整个查询可能会失败。</p></li>
</ul></li>
<li><p>虽然不是必需的,但我建议:</p>

<ul>
<li><p>在 Swift 代码中,将请求的 <code>Content-Type</code>header 设置为 <code>application/x-www-form-urlencoded</code> 和 <code>Accept </code> 对 <code>application/json</code> 的请求的 header 。</p>

<pre><code>request.setValue(&#34;application/x-www-form-urlencoded&#34;, forHTTPHeaderField: &#34;Content-Type&#34;)
request.setValue(&#34;application/json&#34;, forHTTPHeaderField: &#34;Accept&#34;)
</code></pre> </li>
<li><p>在 PHP 代码中,在 <code>echo</code> JSON 之前将 <code>Content-Type</code>header 设置为 <code>application/json</code>:</p>

<pre><code>header(&#34;Content-Type: application/json&#34;);
</code></pre>

<p>虽然这是可选的,但如果您以后采用像 Alamofire 这样的库来对这些标准 header 执行验证,它会让您的生活更轻松。</p></li>
</ul></li>
</ol></p>
                                   
                                                <p style="font-size: 20px;">关于php - POST 不工作 SWIFT PHP,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47953114/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47953114/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: php - POST 不工作 SWIFT PHP