dou8mwz5079 2015-12-07 18:33
浏览 46
已采纳

使用带数组的file_get_contents发布请求

Im trying post a request via file_get_contents but i'm getting error 500, i'm doing this:

   $params = array("pid" => "000209", "main_widget_pid" => "000209");

    $array = array("method" => "bottomline","params" => $params);

    $url = 'http://example.com/test';
    $data = array('app_key' => '8948a6aa12a1a23Yzglj17QO91Geg', 'methods' => $array);

    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded
",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );

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

I believe the problem is in the structure of arrays. But I can not see the problem.

Can anyone give me a way?

  • 写回答

1条回答 默认 最新

  • dsp15140275697 2015-12-07 19:30
    关注

    Try this patch:

    $data = array('app_key' => '8948a6aa12a1a23Yzglj17QO91Geg', 'methods' => $array);
    $http_data = http_build_query($data);
    
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded
    "
                  . "Content-Length: " . strlen($data) . "
    ",
            'method'  => 'POST',
            'content' => $http_data,
        ),
    );
    

    Content-length header is important I guess.

    Also $options looks like:

    array (
      'http' => 
      array (
        'header' => 'Content-type: application/x-www-form-urlencoded
    ',
        'method' => 'POST',
        'content' => 'app_key=8948a6aa12a1a23Yzglj17QO91Geg&methods[method]=bottomline&methods[params][pid]=000209&methods[params][main_widget_pid]=000209',
      ),
    )
    

    Make sure, that it should be like this.

    Error 500 in php means you got fatal exception in your script, after passing it this $options. Maybe you should debug what's wrong there...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址