背景

现在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 ?

能再补充详细点吗?

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php post get content-type,content-type - java访问php接口问题,$_POST默认接收的contentType是?...相关推荐

  1. 使用Java访问https接口javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

    jdk1.6,证书:SHA256+TLSv1.2 使用Java访问https://**************** 接口     控制台提示握手失败错误:javax.net.ssl.SSLHandsh ...

  2. java访问微信接口发送消息

    最近在开发activiti流程的时候有个需求:流程到达每个审批节点后,需要向该节点的审批人发送一个消息,提示有审批需要处理. 参考了一下微信的开发者文档和网络上的一些技术博客,现在记录一下.以便后续继 ...

  3. java访问asmx接口

    网上找了很多例子,很多没法用,只有这个成功了记录一下,原链接忘了,大哥不好意思 <dependency><groupId>commons-httpclient</grou ...

  4. java 访问修饰符不写默认是什么_Java访问修饰符有哪些?权限的区别?

    Java 语言中有四种权限访问控制符,能够控制类中成员变量和方法的可见性. public 被 public 修饰的成员变量和方法可以在任何类中都能被访问到. 被 public 修饰的类,在一个 jav ...

  5. Java访问权限(public、protected、友好的、private)定义

    访问权限定义: 1.访问权限指:对象是否可以通过 " . " 运算符操作自己的变量 或 通过 " . " 运算符调用类中的方法: 2.访问权限修饰符:priva ...

  6. java项目问题 The content of element type servlet must match (icon?,servlet-name,display-name?,descrip

    错误问题:The content of element type "servlet" must match "(icon?,servlet-name,display-na ...

  7. mybatis项目启动报错 The content of element type resultMap must match (constructor?,id*,result*,associat...

    启动项目报错 2018-02-26 17:09:51,535 ERROR [org.springframework.web.context.ContextLoader] - Context initi ...

  8. The content of element type web-app must match……等 问题之解决办法

    在flex整合Java生成的web.xml中添加引用servelet的代码就报错如下: The content of element type "web-app" must mat ...

  9. The content of element type “mapper“ must match “EMPTY“.错误

    <mappers><mapper resource="cn/java/dao/impl/xxx.xml"></mapper></mappe ...

最新文章

  1. linux centos7 使用 crosstool-ng 构建 交叉编译 工具链 即构建各cpu架构平台的gcc编译器
  2. 企业网络推广教你如何打造更利于SEO优化的标题?
  3. python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
  4. tcpip运输层不同的两个协议_TCP/IP-运输层-你需要知道的运输层概念
  5. 汤家凤高等数学基础手写笔记-无穷级数
  6. java akiba,java使用jeids实现redis2.6的脚本执行
  7. linux中awk工具的使用(转载)
  8. 最简单的目标跟踪(模版匹配)
  9. html 复选按钮(input checkbox)
  10. Veeam虚拟化备份
  11. 微信小程序音乐播放控制API在真机上貌似不可用?
  12. 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩(待补充)
  13. 基于JSP的旅游信息管理系统(含论文)
  14. 微信公众号根据关键词取文章列表 API
  15. uniity3d进行磕碰检测并在磕碰时发送音讯
  16. guid主分区表损坏如何处理_guid主分区表损坏如何处理_windows10系统硬盘分区表损坏修复教程...
  17. Excel表格数据的下载
  18. 自动白平衡技术(AWB)
  19. 计算机组成原理中FZ,计算机组成原理实验二.doc
  20. 计算机软件专业的毕业设计论文写作技巧【精华总结】

热门文章

  1. Python之函数的收集参数和分配参数用法(‘*’ 和 ‘**’)
  2. 【精简解释】Java中native关键字作用
  3. 小型项目服务器要多少,小型服务器需要什么配置
  4. python微信验证码收不到_给微信回复消息收不到(Python)
  5. python保存数据到本地_Python爬虫入门 | 6 将爬回来的数据存到本地
  6. Cpp 对象模型探索 / 成员初始化列表
  7. vue 多个filters_vue自定义filters过滤器
  8. 百度智能云开物再收“一个奖状”
  9. 2021年,Java开发者值得学习的13项技能
  10. html天气插件iframe,分享常用7款天气预报代码iframe嵌入网页方式