热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPcURL请求体在node.js中没有定义的问题

本文讨论了在使用PHPcURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。

I've tried all the examples on these SO posts:

我已经尝试了所有的例子,所以贴子:

How do I send a POST request with PHP?

如何使用PHP发送POST请求?

PHP cURL Post request not working

PHP cURL Post请求不工作

Always my request.body is undefined yet in the request itself I see "_hasBody":true

总是我的请求。body尚未定义,我在请求本身中看到“_hasBody”:true

The current code for my php post file:

我的php post文件的当前代码:

function httpPost($url,$data){
    $curl = curl_init($url);
    curl_setopt($curl,CURLOPT_POST,true);
    curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($data));
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    $respOnse=curl_exec($curl);
    curl_close($curl);
    return $response;
    }
$fields = array(
    'name' => 'ben'
,   'foo'  => 'bar'
    );
echo httpPost("http://localhost:8002", $fields);

Then my node.js listening server code is:

然后我的节点。js监听服务器代码为:

var test=require('http').createServer(function(q,a){//question,answer
    console.log(q.body);
    console.log(JSON.stringify(q).indexOf('ben'));
    a.end(JSON.stringify(q));
    });
test.listen(8002,function(e,r){console.log("listening");});

As you can see, in the node.js server I search the request for my name but the console says

可以看到,在节点中。我在请求中搜索我的名字,但是控制台显示

undefined//no body
-1//could not find your name in the request

then I hand over the request back to the response and print it to the page so I can see the whole data.

然后我将请求返回到响应,并将其打印到页面,以便查看整个数据。

logically it would seem that I am doing the cURL part right as its copied code, so I would say I might be doing something wrong to access the vars

从逻辑上看,我似乎把cURL部分作为它的,所以我认为我可能在访问vars时做错了什么

My question is how do I see the request body or where the vars?

我的问题是,我如何看到请求体或vars?

1 个解决方案

#1


3  

To handle a POST request, you have to do the following:

要处理POST请求,您必须执行以下操作:

var qs = require('querystring');
var http = require('http');

var test = http.createServer(function(req, res) { 

    //Handle POST Request
    if (req.method == 'POST') {
        var body = '';
        req.on('data', function(data) {
            body += data;           
        });

        req.on('end', function() {
            var POST = qs.parse(body);

            console.log(body); // 'name=ben&foo=bar'
            console.log(POST); // { name: 'ben', foo: 'bar' }

            if(POST.name == 'ben')
               console.log("I'm ben"); //Do whatever you want.

            res.setHeader("Content-Type", "application/json;charset=utf-8");
            res.statusCode = 200;
            res.end(JSON.stringify(POST)); //your response
        });
    }

});

test.listen(8002, function(e, r) {
    console.log("listening");
});

cURL response:

旋度反应:

{"name":"ben","foo":"bar"}

推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
author-avatar
玛丽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有