Php $\u打开SSL后,POST值消失

Php $\u打开SSL后,POST值消失,php,android,json,ssl,Php,Android,Json,Ssl,在android中,我尝试以json结构发送到web服务器。它可以与http配合使用。但是有了https,$\u POST值对就消失了。在PHP中,var_dump$_POST返回数组(0) 然而,HttpGet可以很好地与http和https一起工作 MyHttpClient httpClient = new MyHttpClient(context); HttpPost httpPost = new HttpPost(url); httpPo

在android中,我尝试以json结构发送到web服务器。它可以与http配合使用。但是有了https,$\u POST值对就消失了。在PHP中,var_dump$_POST返回数组(0) 然而,HttpGet可以很好地与http和https一起工作

        MyHttpClient httpClient = new MyHttpClient(context);

        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();
尝试在php中捕获

尝试在php中捕获


如果我设置了HttpClientParams.setRedirecting(params,false);然后翻页 返回“临时断开链接已修复”

这听起来像是将请求发送到
http://
URL,并指望重定向(可能通过
mod_rewrite
或类似的方式,例如PHP代码本身中的重定向)将页面转换为
https

此操作模式首先向服务器发出普通HTTP请求,然后通知客户端资源已移动到
https://
地址。反过来,如果自动重定向被激活,客户端会发出第二个请求

根据(用于重定向的)

如果收到301/302状态代码以响应除 GET或HEAD时,用户代理不能自动重定向 请求,除非用户可以确认,因为这可能 更改发出请求的条件

大多数浏览器将此解释为“如果第一个请求是POST,则不要重新发送重定向请求的数据,但无论如何都要使第二个请求成为GET”。这将解释为什么第二次尝试会丢失任何已发布的正文

请注意,出于中解释的原因,过度依赖重写/重定向将
http://
请求转换为
https://
请求应被视为不良做法


如果我设置了HttpClientParams.setRedirecting(params,false);然后翻页 返回“临时断开链接已修复”

这听起来像是将请求发送到
http://
URL,并指望重定向(可能通过
mod_rewrite
或类似的方式,例如PHP代码本身中的重定向)将页面转换为
https

此操作模式首先向服务器发出普通HTTP请求,然后通知客户端资源已移动到
https://
地址。反过来,如果自动重定向被激活,客户端会发出第二个请求

根据(用于重定向的)

如果收到301/302状态代码以响应除 GET或HEAD时,用户代理不能自动重定向 请求,除非用户可以确认,因为这可能 更改发出请求的条件

大多数浏览器将此解释为“如果第一个请求是POST,则不要重新发送重定向请求的数据,但无论如何都要使第二个请求成为GET”。这将解释为什么第二次尝试会丢失任何已发布的正文


请注意,出于中所述的原因,过度依赖重写/重定向将
http://
请求转换为
https://
请求应被视为不好的做法。

是的,您在php中发现了一个其他人从未发现过的错误,或者是您的代码。猜猜是哪个?也许你的POST请求被重定向了,然后失去了POST数据?如果我设置HttpClientParams.setRedirecting(params,false);然后页面返回“临时断开链接修复”是的,您在php中发现了一个其他人从未发现过的错误,或者是您的代码。猜猜是哪个?也许你的POST请求被重定向了,然后失去了POST数据?如果我设置HttpClientParams.setRedirecting(params,false);然后页面返回“临时断开链接修复”,没有任何内容。我将$data保存到错误日志中:$data=file\u get\u contents('php://input'); 错误日志($data,0);如果$\u请求也没有得到任何东西,那么在java或url中搜索问题尝试使用某种日志文件而不是错误日志(),因为可能存在apache配置问题。没有任何问题。我将$data保存到错误日志中:$data=file\u get\u contents('php://input'); 错误日志($data,0);如果$\u请求也没有得到任何东西,那么在java或url中搜索问题尝试使用某种日志文件而不是错误日志(),因为可能存在apache配置问题。我尝试在浏览器中键入https URL,它会将我重定向到其他链接。我在java中将URL更改为重定向URL,它成功了!我尝试在浏览器中键入https URL,它会将我重定向到其他链接。我在java中将URL更改为重定向URL,它成功了!
$data = file_get_contents('php://input');