php发送post请求,koa2接受数据

简介: php发送post请求,koa2接受数据

test.php

<?php
function send_post($url, $post_data) {
    $postdata = http_build_query($post_data);
    $options = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'Content-type:application/x-www-form-urlencoded',
            'content' => $postdata,
            'timeout' => 15 * 60 // 超时时间(单位:s)
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return $result;
}
$post_data = array(
    'order_id' => '1445',
    'order_sn' => '142251244555'
);
//koa接收post接口,需要加上http://
$url = 'http://localhost:3000/orderinfo';

$re = send_post($url,$post_data);
echo ($re);

app.js

const Koa = require('koa');
const bodyParser = require('koa-bodyparser');

// 等于const router = require('koa-router')();
const Router = require('koa-router');
const router = new Router();
const app = new Koa();


// log request URL:
app.use(async (ctx, next) => {
    console.log(`${ctx.request.method} ${ctx.request.url}`); // 打印URL
    await next(); // 调用下一个middleware
});

// add get-url-route:
router.get('/orderinfo/:id', async (ctx, next) => {
    var
        order_id = ctx.params.order_id,
        order_sn = ctx.params.order_sn;
    console.log(`${order_id},${order_sn}`);
    ctx.response.body = `<h1>Hello, ${order_id},${order_sn}!</h1>`;
});

router.get('/', async (ctx, next) => {
    ctx.response.body = '<h1>this is qioku fabric API!</h1>';
});

router.get('/order', async (ctx, next) => {
    ctx.response.body = `
        <form action="/orderinfo" method="post">
            <p>order_id: <input name="order_id" value=""></p>
            <p>order_sn: <input name="order_sn" value=""></p>
            <p><input type="submit" value="Submit"></p>
        </form>`;
});

// add post-url-route:
router.post('/orderinfo', async (ctx, next) => {
    var
        order_id = ctx.request.body.order_id || '',
        order_sn = ctx.request.body.order_sn || '';
    //console.log(ctx.request);
    console.log(`${order_id},${order_sn}`);
    // 返回
    ctx.response.body = '<h1>这是第'+`${order_id}`+'份订单,订单号为'+`${order_sn}`+'!</h1>';
});

/*app.use(async (ctx, next) => {
    const start = new Date().getTime(); // 当前时间
    await next(); // 调用下一个middleware
    const ms = new Date().getTime() - start; // 耗费时间
    console.log(`Time: ${ms}ms`); // 打印耗费时间
});*/

// 对于任何请求,app将调用该异步函数处理请求:
// ctx是koa封装了request和response的变量
// next是koa传入的将要处理的下一个异步函数
app.use(async (ctx, next) => {
    await next();
    ctx.response.type = 'text/html';
    ctx.response.body += '<h1>Hello, koa2!</h1>';
});

// 必须在router之前
app.use(bodyParser());
// add router middleware:
app.use(router.routes());

// 在端口3000监听:
app.listen(3000);
console.log('app started at port 3000...');

结果:在这里插入图片描述

form.html也可以接受,注意http://

<form action="http://localhost:3000/orderinfo" method="post">
    <p>order_id: <input name="order_id" value=""></p>
    <p>order_sn: <input name="order_sn" value=""></p>
    <p><input type="submit" value="Submit"></p>
</form>
目录
相关文章
|
6天前
|
关系型数据库 MySQL 数据库连接
13 PHP数据的获取
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入理解PHP。本文介绍了从结果集中获取一行数据作为对象(`mysqli_fetch_object()`)、获取一行作为枚举数组(`mysqli_fetch_row()`)、获取查询结果集中的记录数(`mysqli_num_rows()`)、释放内存(`mysqli_free_result()`)以及关闭数据库连接(`mysqli_close()`)的方法,并提供了具体示例代码。
18 3
|
14天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
3月前
|
数据采集 PHP
PHP中实现简单爬虫与数据解析
【8月更文挑战第31天】在互联网的海洋里,爬虫技术如同一艘探索船,帮助我们搜集和理解信息。本文将带你通过PHP语言,轻松实现一个简单的网页内容抓取工具,并展示如何从抓取的数据中解析出有用信息。我们将一起航行在代码的波浪中,体验从无到有构建一个基本爬虫的过程。
|
3月前
|
数据采集 JavaScript 数据挖掘
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
本文介绍了使用PHP Simple HTML DOM Parser进行网页数据抓取的方法,尤其适用于从懂车帝二手车网站提取汽车品牌、价格和里程等关键信息。首先,安装并配置所需库,使用代理IP和设置cookie与useragent来模拟用户行为,避免被封。然后,通过编写PHP脚本,利用cURL获取网页内容,解析HTML并提取所需数据,最终将数据保存至CSV文件。文章强调了正确配置代理和用户代理的重要性,并提供了完整的PHP代码示例,以帮助读者理解和应用网页抓取技术。
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
|
4月前
|
前端开发 PHP 数据格式
【附带效果视频】php接口给前端返回流式数据,php使用event-stream进行数据推送,循环一次输出一次
【附带效果视频】php接口给前端返回流式数据,php使用event-stream进行数据推送,循环一次输出一次
162 0
|
移动开发 PHP 前端开发
PHP:6种GET和POST请求发送方法
原文:PHP:6种GET和POST请求发送方法 在i94web博客中,我试过了畅言和多说两种社会化评论框,后来还是抛弃了畅言,不安全。 无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入本地数据库。
1566 0
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
2月前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
135 9