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>
目录
相关文章
|
2月前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
2月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
55 5
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
70 3
|
2月前
|
存储 SQL 数据处理
PHP中如何高效地处理大规模数据的排序?
在PHP中处理大规模数据排序时,选择合适的方法至关重要。对于内存内可以处理的数据,可以直接使用PHP内置排序函数;对于超出内存限制的数据,可以考虑分块处理、外部排序或利用数据库的排序功能。根据具体应用场景和数据规模,选择最佳的排序策略,确保排序操作高效且稳定。
29 2
|
2月前
|
关系型数据库 MySQL 数据库连接
13 PHP数据的获取
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入理解PHP。本文介绍了从结果集中获取一行数据作为对象(`mysqli_fetch_object()`)、获取一行作为枚举数组(`mysqli_fetch_row()`)、获取查询结果集中的记录数(`mysqli_num_rows()`)、释放内存(`mysqli_free_result()`)以及关闭数据库连接(`mysqli_close()`)的方法,并提供了具体示例代码。
42 3
|
PHP
PHP:变量类型获取和数据类型转换
PHP:变量类型获取和数据类型转换
115 0
|
存储 自然语言处理 JavaScript
PHP变量和数据类型
1.静态类型语言,比如:C/Java等,在静态语言类型中,类型的检查是在编译期(compile-time)确定的。 2. 动态语言类型,比如:PHP,python等各种脚本语言,这类语言中的类型是在运行时确定的。 3. 无类型语言,比如:汇编语言,汇编语言操作的是底层存储,他们对类型毫无感知。
PHP变量和数据类型
|
安全 PHP Shell
PHP变量的定义与相应的数据类型
在PHP中,变量的定义和C语言定义的方法是类似的,但是在PHP中,变量使用起来就非常灵活,一个变量既可以做整型,也可以是浮点型,也可以是字符串或者字符类型,通通只要在变量名前面加一个$然后加上你的变量名,再初始化,那么编译器在编译的时候就可以将对应的转换成为相应的数据类型,这点是跟bash shell 很像的,我们可以来看看: php中的变量 变量: 值存储在内存中 有名称的信息。
991 0
|
存储 PHP 索引
PHP变量和数据类型
原文:PHP变量和数据类型 编程语言可以分为三大类 1. 静态类型语言,比如:C/Java等,在静态语言类型中,类型的检查是在编译期(compile-time)确定的。 2. 动态语言类型,比如:PHP,python等各种脚本语言,这类语言中的类型是在运行时确定的。
1438 0