php接收不到java程序post过来的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php接收不到java程序post过来的数据相关的知识,希望对你有一定的参考价值。

这是java客户端一个注册的简单例子:

我在php端用$_POST获取不到任何东西 用file_get_contents("php://input") 也不行 应该怎么获取啊

java那边传post数据,我作为php接收。
那边要传中文,所以要urlencode一下。
我打印$_POST,传过来的所有东西在KEY里。于是,用name=""id":"20","name":"张三""。
但打印是显示不出来的,因为“ 的字符实体。
于是先htmlspecialchars_decode,才解决问题。
参考技术A 请问题主用的什么库发送post请求?没搜到ApiUtil这个类。
用HTML写个简单的html表单,测试一下post,好使吗?追问

我用html测试能用 但java端不行 那边回应是RequestParams包装数据,用post方式上传

参考技术B querystring用$_GET追问

我不太懂java 你能说的详细点么 这数据不是post过来的?

写代码中遇到的问题(php接收不到传过来的json数据,php使用utf8的用法)

    今天写代码用python处理完数据,传给php服务器后,发现接收不到数据,因为是跨域,所以加了消息头:header(‘Access-Control-Allow-Origin:*‘);但是并没有什么卵用,后来不停地百度,东拼西凑终于找到了解决方案。

方案如下:

    1。传过来的数据要加header头:headers = {‘Content-Type‘: ‘application/json‘}

    2。PHP接收数据时要用:$GLOBALS[‘HTTP_RAW_POST_DATA‘]。

      原因如下:  $_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。  PHP默认只识别application/x-www.form-urlencoded标准的数据类型,也就是可以正常接受的post数据。

            如text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用$_POST数组来接收就会失败!故保留原型,交给$GLOBALS[‘HTTP_RAW_POST_DATA‘] 来接收。

 

php接收到数据以后,上传mysql后发现中文乱码,在PHP中加入header("Content-type: text/html; charset=utf-8");mysql中设置字符集utf-8也无效,后来发现是pdo没有设置中文编码,加上以后,遂成功。

另附 

  utf-8的使用方法

 “UTF-8”是标准写法,php在Windows下边英文不区分大小写,所以也可以写成“utf-8”。“UTF-8”也可以把中间的“-”省略,写成“UTF8”。一般程序都能识别,但也有例外(如下文),为了严格一点,最好用标准的大写“UTF-8”。

数据库中只能使用“utf8”(MySQL) 在mysql的命令模式中只能使用“utf8”,不能使用“utf-8”,也就是说在PHP程序中只能使用“set names utf8(不加小横杠)”,如果你加了“-”此行命令将不会生效,但是在php中header时却要加上“-”,因为IE不认识没杠的“utf8”,原因见下文。

 

PHP中的header:

 <?php header(‘Content-Type: text/html; charset=UTF-8‘); ?> //奇怪了:Content-Tyep用冒号,Chatset却是等号。
静态文件使用:
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
总结:【只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。】

 

 





以上是关于php接收不到java程序post过来的数据的主要内容,如果未能解决你的问题,请参考以下文章

java后台如何接收php用post方式提交过来的请求参数?

php如何接收别的服务器post过来的数据 - 技术问答

在PHP中怎么接收post过来的JSON数据

php接收post过来的 json数据 例子

php函数里面怎么获取post过来的值

php怎么接收易语言post的数据,会php的帮下忙