content-type-java访问php接口问题,$_POST默认接收的contentType是?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了content-type-java访问php接口问题,$_POST默认接收的contentType是?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2456字,纯文字阅读大概需要4分钟。
内容图文
![content-type-java访问php接口问题,$_POST默认接收的contentType是?](/upload/InfoBanner/zyjiaocheng/238/072b3f28762c4082826296a8dd12d25f.jpg)
背景
- 现在java需要访问我的php接口
- 我这边直接
$_POST
取值
测试工具是mac下的,我不太清楚,是HTTP服务测试工具,填我的api地址,参数,然后访问类型Post/Get
,然后线程数什么的,然后开始跑,其中有一个选项是使用multipart/form-data
,如果勾上就很快。
php端
我这边php其实就走的普通方法,差不多这样:
function check_username(){
$username = $_POST['username'];
$result = _check_username($username);
return json($result);
}
java端
用的封装的类库,好像HttpClient
之类的,我只知道默认的请求的ContentType
是application/x-www-form-urlencode
的
问题
- 用测试工具发现
- 如果是
contentType
是application/x-www-form-urlencode
访问,需要好长时间,平均几秒钟 - 如果是
multipart/form-data
则非常快,几十毫秒就完了
为什么会出现这种情况啊?
我用$_GET['username']
也是可以取到的,application/x-www-form-urlencode
这个本质上是不是就是Get请求啊?
回复内容:
背景
- 现在java需要访问我的php接口
- 我这边直接
$_POST
取值
测试工具是mac下的,我不太清楚,是HTTP服务测试工具,填我的api地址,参数,然后访问类型Post/Get
,然后线程数什么的,然后开始跑,其中有一个选项是使用multipart/form-data
,如果勾上就很快。
php端
我这边php其实就走的普通方法,差不多这样:
function check_username(){
$username = $_POST['username'];
$result = _check_username($username);
return json($result);
}
java端
用的封装的类库,好像HttpClient
之类的,我只知道默认的请求的ContentType
是application/x-www-form-urlencode
的
问题
- 用测试工具发现
- 如果是
contentType
是application/x-www-form-urlencode
访问,需要好长时间,平均几秒钟 - 如果是
multipart/form-data
则非常快,几十毫秒就完了
为什么会出现这种情况啊?
我用$_GET['username']
也是可以取到的,application/x-www-form-urlencode
这个本质上是不是就是Get请求啊?
默认的普通表单POST是application/x-www-form-urlencode
,上传文件的表单是multipart/form-data
。
两种方式由于用不同的编码解码方法,使得前者适合传数据量少的键值对,后者适合传二进制文件。
于浏览器来讲,对两种方式支持的都很好,而且HTML5中加入了FormData
,可以很方便的构造multipart/form-data
请求表单。
于PHP来讲,两者从Apache或nginx等服务器到$_POST中的大变量之间,大致的生命周期都是一样的,只有send——parse这一步做的工作不同。
两者虽说存在一定的效率差距,但出现up主说的这种两个数量级的差距,还是非常罕见的。
所以我觉得出现这种问题,你用浏览器测一下,或者在java访问日志和php响应日志里看一下实际的效率,而不是测试工具(不清楚你用的是什么测试工具),看下问题到底是出在java构造请求,还是php解析请求并返回时,还是中间的网络上等原因
能贴一下你的代码吗?你这样大家完全不能回答
你可以用wireshark抓一下报文吗?
- 先确定你的报文是不是很大?
- 你的php的是apache ,还是fpm还是fastcgi ?
能再补充详细点吗?
内容总结
以上是互联网集市为您收集整理的content-type-java访问php接口问题,$_POST默认接收的contentType是?全部内容,希望文章能够帮你解决content-type-java访问php接口问题,$_POST默认接收的contentType是?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。