热门标签 | 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 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 本文探讨了如何使用pg-promise库在PostgreSQL中高效地批量插入多条记录,包括通过事务和单一查询两种方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
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社区 版权所有