热门标签 | 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"}

推荐阅读
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • Node.js 入门指南(一)
    本文介绍了Node.js的安装步骤、如何创建第一个应用程序、NPM的基本使用以及处理回调函数的方法。通过实际操作示例,帮助初学者快速掌握Node.js的基础知识。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 自 Node.js 6.3 版本起,调试功能已内置在核心模块中,无需额外安装 node-inspector 等工具。通过简单的命令即可启动调试模式,并利用 Chrome 浏览器进行高效的代码调试。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文详细介绍了如何在 MySQL 中授予和撤销用户权限。包括创建用户、赋予不同级别的权限(如表级、数据库级、服务器级)、使权限生效、查看用户权限以及撤销权限的方法。此外,还提供了常见错误及其解决方法。 ... [详细]
  • 本文介绍了如何在 Node.js 中使用 `setDefaultEncoding` 方法为可写流设置默认编码,并提供了详细的语法说明和示例代码。 ... [详细]
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社区 版权所有