上图是使用POSTMAN工具调试的,用raw形式提交数据就会返回最底部的那串数据;

而下图,则是使用form-urlencoded形式提交的数据,返回错误了。使用第1种form-data形式也是如此。

现在的情况是,我使用PHP的curl来post数据,则如上图所示一样的错误。

代码如下:

function curls($url, $data_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'X-AjaxPro-Method:ShowList',

'Content-Type: application/json; charset=utf-8',

'Content-Length: ' . strlen($data_string))

);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

$get_url = "http://abc.xxx.com/UC_News_ShowList,App_Web_abc.ashx";

$post_str = '{"P":5,"Sclass":"新闻","Table":"HS_N_News","Link":"News"}';

$post_datas = curls($get_url, $post_str);

echo $post_datas;

?>

邪恶的分割线: 已解决

已解决:

这个和post方式无关。而是因为少了个header

$headers = array(

"User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36",

"X-AjaxPro-Method:ShowList"

);

代码最终形态是:

function curls($url, $data_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'X-AjaxPro-Method:ShowList',

'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36'

);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

$get_url = "http://abc.xxx.com/UC_News_ShowList,App_Web_abc.ashx";

$post_str = '{"P":5,"Sclass":"新闻","Table":"HS_N_News","Link":"News"}';

$post_datas = curls($get_url, $post_str);

echo $post_datas;

POST的数据依然是json格式的数据,而不是array形式的。被POSTMAN给坑了~!!!

回复内容:

上图是使用POSTMAN工具调试的,用raw形式提交数据就会返回最底部的那串数据;

而下图,则是使用form-urlencoded形式提交的数据,返回错误了。使用第1种form-data形式也是如此。

现在的情况是,我使用PHP的curl来post数据,则如上图所示一样的错误。

代码如下:

function curls($url, $data_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'X-AjaxPro-Method:ShowList',

'Content-Type: application/json; charset=utf-8',

'Content-Length: ' . strlen($data_string))

);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

$get_url = "http://abc.xxx.com/UC_News_ShowList,App_Web_abc.ashx";

$post_str = '{"P":5,"Sclass":"新闻","Table":"HS_N_News","Link":"News"}';

$post_datas = curls($get_url, $post_str);

echo $post_datas;

?>

邪恶的分割线: 已解决

已解决:

这个和post方式无关。而是因为少了个header

$headers = array(

"User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36",

"X-AjaxPro-Method:ShowList"

);

代码最终形态是:

function curls($url, $data_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'X-AjaxPro-Method:ShowList',

'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36'

);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

$get_url = "http://abc.xxx.com/UC_News_ShowList,App_Web_abc.ashx";

$post_str = '{"P":5,"Sclass":"新闻","Table":"HS_N_News","Link":"News"}';

$post_datas = curls($get_url, $post_str);

echo $post_datas;

POST的数据依然是json格式的数据,而不是array形式的。被POSTMAN给坑了~!!!

http://stackoverflow.com/questions/13099177/how-to-send-raw-post-data-with-curl-php

据说设置一个不可识别的Content-Type,POSTFILEDS还是像以前一样传递一个Array就可以了

raw 就是http请求实体内容body中最原始的数据,可以自定义发送给服务器的body数据,并通过设置header来确定body的类型来供服务器解析。如果不设置content-type的话,默认为x-www-form-urlencoded。body中为参数=&参数=的形式

curl_setopt($handle, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));

已解决,谢谢。

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

php提交raw_PHP中如何POST提交raw数据?相关推荐

  1. php提交raw_PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析

    本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别.分享给大家供大家参考,具体如下: $_POST:通过 HTTP POST 方法传递的变量组成的数组. ...

  2. Postman中请求体提交方式

    Postman中请求体提交方式 x-www-form-urlencoded form-data raw binary x-www-form-urlencoded x-www-form-urlencod ...

  3. Git:如何在项目提交历史中查找已删除的文件?

    曾几何时,我的项目中现在有一个文件,我现在希望能够得到. 问题是:我不知道何时删除它以及它在哪条路径上. 如何找到该文件的提交? #1楼 无法编辑接受的回复,因此在此处将其添加为答案, 要恢复git中 ...

  4. EF 4.1中内部经常提交的 exec sp_reset_connection 的用途原来是为了重用池中的连接...

    sp_reset_connection 的作用 当您使用连接池连接到 SQL Server 时,SQL Server 将调用 sp_reset_connection 存储过程来重用之前池中的连接. ( ...

  5. 【开发环境】PyCharm 配置 GitHub ( 在 PyCharm 中向 GitHub 提交代码 )

    文章目录 一.PyCharm 配置 GitHub 二.在 PyCharm 中向 GitHub 提交代码 一.PyCharm 配置 GitHub 选择 " 菜单栏 / File / Setti ...

  6. 4、Docker 提交运行中容器作为新的镜像

    1.查看docker镜像 提交容器副本使之成为一个新的镜像 docker images tomcat 2.运行docker 镜像(tomcat)成为容器 docker run -it -d -p 88 ...

  7. tp5 ajax 路由,tp5中ajax方式提交表单

    用ajax提交表单,迅速,快捷,实现页面无刷新提交表单. ajax批删 姓名 年龄 地址 添加 $("#sub").click(function(){ var name = $(& ...

  8. git中统计代码提交数

    git中统计代码提交数 通过git log来取 git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

  9. SVN在另类环境中实现自动提交的方法

    环境: SVN SERVER  172.16.1.100            (CentOS 5.5 X64) WEB SERVER  172.16.1.111            (CentOS ...

最新文章

  1. mybatis批量更新报错XXXXX-Inline
  2. java连接到mysql_[操作系统]Java如何连接到MySQL数据库的
  3. 《Attention Is All You Need》
  4. 在C++中,你真的会用new吗?
  5. 七牛云 转码_开发者选择短视频SDK,为何青睐七牛云?
  6. idea上一步下一步快捷键_领航者的一步,左右行业的下一步!双11海尔洗衣机再夺冠的思考...
  7. XE7 Unit scope names
  8. mysql数据的持久化_一起做个简单的数据库(五):持久化存储
  9. Github博客私人订制(一)
  10. 消息队列技术终结者(一)—通俗深刻地认识JMS(即Java Message Service)
  11. 显示100以内的所有偶数php,vb100-急需vb编程求100以内所有奇数和及所有偶数和vb编程求100以 爱问知识人...
  12. Mathematica note
  13. 如何深入学习 Android Framework
  14. 拉拉米抢单发单源码 二开ui 带视频介绍 放量功能
  15. 梯度类算法原理:最速下降法、牛顿法和拟牛顿法
  16. java.lang.IllegalStateException: getWriter() has already been called for this response问题解决
  17. 让谷歌折戟的AI流行病预测,在今天如何被创业公司攻占?
  18. 网页乱码与设置utf-8乱码
  19. 模拟电路-振荡电路、振荡电路类型 (一)
  20. 如何查看本地activex插件

热门文章

  1. MySQL Timeout解析
  2. 设计友好的错误信息页面
  3. 博客订阅代码de制作
  4. 看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题...
  5. sql server 2008学习6 更复杂的查询
  6. 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...
  7. 详解git pull和git fetch的区别:
  8. python算法与数据结构-选择排序算法(33)
  9. mysql 存储引擎接口_MySQL体系结构和存储引擎
  10. 微信小程序点击button按钮后重置输入框等表单内容