菜鸟教程小白 发表于 2022-12-12 09:56:35

php - 发布请求未从 iOS 设备到达服务器


                                            <p><p>尝试向远程 PHP 文件发出简单的发布请求。我没有收到服务器上的参数。我使用 Postman Btw 收到的。所以服务似乎还可以。此处似乎缺少 iOS 代码。</p>

<pre><code>- (void) sendPostRequest {
NSError *error;

NSURLSessionConfiguration *configuration = ;
NSURLSession *session = ;
NSURL *url = ;
NSMutableURLRequest *request = ;
;
;

;
NSDictionary *mapData = [ initWithObjectsAndKeys:
                         @&#34;JSON&#34;, @&#34;responseType&#34;,
                         .user.username, @&#34;username&#34;,
                            self.textView.text, @&#34;text&#34;,
                         nil];

NSData *postData = ;
allowLossyConversion:YES];
;
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@&#34;%@&#34;, );
    } else {
       NSArray *jsonResponseArray = ;
      NSLog(@&#34;%@&#34;, jsonResponseArray);
    }
}] resume];
}
</code></pre>

<p>我的 PHP 代码接收帖子请求。</p>

<pre><code>&lt;?php
header(&#34;Content-type:application/json&#34;);

$postText= $_POST[&#39;text&#39;];
$username = $_POST[&#39;username&#39;];
$itemType = $_POST[&#39;itemType&#39;];
$responseType = $_POST[&#39;responseType&#39;];
$pictureLink = $_POST[&#39;pictureLink&#39;];
$timestamp = $_POST[&#39;timestamp&#39;];
$tags = $_POST[&#39;tags&#39;];

if($timestamp==null){
    $timestamp = date(&#39;Y-m-d G:i:s&#39;);
}
$arr = array(&#39;username&#39; =&gt; $username);
echo json_encode($arr);
?&gt;
</code></pre>

<p><code>jsonResponseArray</code>从这是<code>username = &#34;&lt;null&gt;&#34;;</code> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用</p>

<pre><code>$handle = fopen(&#39;php://input&#39;,&#39;r&#39;);
$jsonInput = fgets($handle);
</code></pre>

<p>代替<code>$_POST</code></p>

<p>像这样:</p>

<pre><code>&lt;?php
    header(&#34;Content-type:application/json&#34;);

$handle = fopen(&#39;php://input&#39;,&#39;r&#39;);
$jsonInput = fgets($handle);
$arr = json_decode($jsonInput, true);

$postText= $arr[&#39;text&#39;];
$username = $arr[&#39;username&#39;];
$itemType = $arr[&#39;itemType&#39;];
$responseType = $arr[&#39;responseType&#39;];
$pictureLink = $arr[&#39;pictureLink&#39;];
$timestamp = $arr[&#39;timestamp&#39;];
$tags = $arr[&#39;tags&#39;];

if($timestamp==null){
    $timestamp = date(&#39;Y-m-d G:i:s&#39;);
}
$arr = array(&#39;username&#39; =&gt; $username);
echo json_encode($arr);
?&gt;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于php - 发布请求未从 iOS 设备到达服务器,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33949874/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33949874/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: php - 发布请求未从 iOS 设备到达服务器