php 中发送get请求,后台无法获取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 中发送get请求,后台无法获取相关的知识,希望对你有一定的参考价值。

用下面代码发,后台可正常获取参数
$url = "http://127.0.0.1:90/1/api/api.php?username=".$_POST["username"]."&password=".$_POST["password"]."&ip=".$ip;
//echo '<script>window.location.href="'.$url.'"; </script>';
用下面代码发,后台获取不到信息
$url = "http://127.0.0.1:90/1/api/api.php?username=".$_POST["username"]."&password=".$_POST["password"]."&ip=".$ip;
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,0);
curl_setopt($curl,CURLOPT_HEADER,0 ) ;
curl_setopt($curl,CURLOPT_URL,$url);
$result=curl_exec($curl);
curl_close($curl);

后台代码
<?php
date_default_timezone_set("Asia/Shanghai");

$username = isset($_GET['username'])?$_GET['username']:"";
$password = isset($_GET['password'])?$_GET['password']:"";

echo "get ok";
?>

前端用第一种方式会把后台的 “get ok”显示出来
我的需求是不想显示get ok信息,并且在发送get请求之后,跳转到另一个页面,请问该怎么做啊

针对你说的方式,我分两个来回答,第一种方法,你把后台代码那个echo \'get ok\'去掉,然后把前台发送的那个注释去掉,应该就能跳转了;第二种方法,你只是接收了参数,又没有返回任何值,当然判断不了是否又没有接收成功,你应该随便返回一个值,证明代码是能走通的,思路是这样,希望对你有帮助

参考技术A 把输出注释掉然后换成跳转语句就行了啊……好简单的样子追问

不好意思,我用的就是注释中的代码做的测试,发出来的时候忘记把注释去掉了。。。换成跳转语句是什么意思,现在用注释中的代码,会得到服务器的返回值,并在页面上显示出来,我就是不想让返回值显示出来,要怎么做?

追答

就是重定向啊,你自己去查手册,有很多方法

使用带参数的 file_get_contents 从 PHP 获取请求

【中文标题】使用带参数的 file_get_contents 从 PHP 获取请求【英文标题】:GET Request from PHP using file_get_contents with parameters 【发布时间】:2011-11-13 05:57:31 【问题描述】:

我想向外部站点发送 GET 请求,但也想发送一些参数

例如,我必须向 example.com 发送 get 请求

我想执行 www.example.com/send.php?uid=1&pwd=2&msg=3&phone=3&provider=xyz

我的代码是:

$getdata = http_build_query(
array(
    'uid' => '1',
    'pwd' => '2',
 'msg'=>'3',
 'phone'=>'9999',
 'provider'=>'xyz'
 )
);

$opts = array('http' =>
 array(
    'method'  => 'GET',
    'content' => $getdata
)
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/send.php', false, $context);

我收到服务器错误。

【问题讨论】:

服务器错误说什么? 【参考方案1】:

content 选项用于POSTPUT 请求。对于GET,您可以将其附加为查询字符串:

file_get_contents('http://example.com/send.php?'.$getdata, false, $context);

此外,method 默认为GET,因此您甚至不需要设置选项,也不需要创建流上下文。因此,对于这种特殊情况,如果您愿意,可以简单地使用第一个参数调用 file_get_contents

【讨论】:

感谢您的回复:之前的代码正在向服务器发送一些数据,但请求没有得到正确处理。但是,使用您建议的代码并出现错误“HTTP Error 1.1” cURL 在处理这类请求等方面不是更好吗? @redskin 你能帮我解决一下 cURL 吗?谢谢 确定人.. 加我Skype @ redskins80。如果我在线,不要犹豫发送一个嗡嗡声! @Anant 1.1 错误? 500?这可能与脚本的接收部分有关。检查你的 php 日志

以上是关于php 中发送get请求,后台无法获取的主要内容,如果未能解决你的问题,请参考以下文章

php如何通过get方法发送http请求,并且得到返回的参数

使用带参数的 file_get_contents 从 PHP 获取请求

Flask04 后台获取请求数据视图函数返回类型前台接受响应数据

ajax

Java 后台模拟发送 POST GET 请求

访问PHP发送多个get请求