哪种是在PHP中发布请求中发送JSON的最佳和最快的方式?

时间:2015-11-07 14:42:11

标签: php json curl webserver

我是android开发人员并且在php中有一些知识。我需要在php中发布帖子请求。我找到了两种方法来实现它。

1。使用CURL。

$url = "your url";    
$content = json_encode("your data to be sent");

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
        array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

$json_response = curl_exec($curl);

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if ( $status != 201 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
}


curl_close($curl);

$response = json_decode($json_response, true);

2。使用Simple Post(file_get_contents)。

$options = array(
  'http' => array(
    'method'  => 'POST',
    'content' => json_encode( $data ),
    'header'=>  "Content-Type: application/json\r\n" .
                "Accept: application/json\r\n"
    )
);

$context  = stream_context_create( $options );
$result = file_get_contents( $url, false, $context );
$response = json_decode( $result );

但是,我只是想知道哪种方式更好更有效,为什么呢? 是否有任何服务器/浏览器或任何与平台相关的问题? 或者还有其他技术可以实现吗? 欢迎提出建议。谢谢

2 个答案:

答案 0 :(得分:1)

最佳实现方式始终是

  1. 使用CURL。
  2. 因为这是最快的&更可靠..

答案 1 :(得分:0)

如果您只是从通过Android JAVA代码调用启动的PHP脚本发送JSON回复,那么最简单且可能禁用的只是来自PHP脚本的echo JSON字符串。

<?php

    // read the $_POST inputs from Android call

    // Process whatever building an array 
    // or better still an object containing all
    // data and statuses you want to return to the
    // android JAVA code

    echo json_encode($theObjectOrArray);
    exit;

这样,它就是同一个帖子/响应的一部分。如果你参与了CURL,你就会打破简单的生命周期。