http POST 路由怎么在url中传参数

发布于 2022-09-07 16:00:08 字数 862 浏览 16 评论 0

1.POST请求方式
请求地址:/service/upload_pic.php?puid=indexcode1&chan=01&zptime=20170609090506000&faceid=2&f acescore=60&x=100&y=240&width=720&height=570&age=3&sex=1&glass=1&end=0&stay=10&picnum=2&gpsEW=E&longitude=130345&gpsNS=N&latitude=28650&remark=HTTP/1.1
2.这是一家公司给的接口文档,我当时问post请求地址栏怎么可以带参数的,对面给我回了一句谁告诉你post请求地址栏是不可以带参数的,瞬间懵了,搞得哦我现在都不敢问他,我是本地利用curl模拟请求,
clipboard.png

clipboard.png
3.
clipboard.png
4.我用第一张图片的不带参数的url(注释了的url),第二张图片路由后面的puid等参数去掉,第三张图片dd(123)是有结果的,但是现在别人的文档是要求post是带参数的,我路由就是第二张图片中的路由,这样肯定是404,所以我想问post是怎么在地址栏中可以传参数,烦请各路大神指点一二。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

雨后咖啡店 2022-09-14 16:00:08

谢邀
不能改接口那就请求前先拼好url,然后设置好post字段就好了
发送post请求,url里的get参数仍然可以接收的,$_GET,$_POST都有值

—━☆沉默づ 2022-09-14 16:00:08

a.php

<?php
$puid = $_GET['puid'];
$chan = $_GET['chan'];
$zptime = $_GET['zptime'];
$faceid = $_GET['faceid'];
$facescore = $_GET['facescore'];
$x = $_GET['x'];
$y = $_GET['y'];
$width = $_GET['width'];
$height = $_GET['height'];
$age = $_GET['age'];
$sex = $_GET['sex'];
$glass = $_GET['glass'];
$end = $_GET['end'];
$stay = $_GET['stay'];
$picnum = $_GET['picnum'];
$gpsEW = $_GET['gpsEW'];
$longitude = $_GET['longitude'];
$gpsNS = $_GET['gpsNS'];
$latitude = $_GET['latitude'];
$remark = $_GET['remark'];
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$d = $_REQUEST['d'];
$e = $_REQUEST['e'];
echo "puid={$puid}&chan={$chan}&zptime={$zptime}&faceid={$faceid}&facescore={$facescore}&x={$x}&y={$y}&width={$width}&height={$height}&age={$age}&sex={$sex}&glass={$glass}&end={$end}&stay={$stay}&picnum={$picnum}&gpsEW={$gpsEW}&longitude={$longitude}&gpsNS={$gpsNS}&latitude={$latitude}&remark={$remark}&a={$a}&b={$b}&c={$c}&d={$d}&e={$e}";

b.php

<?php
$postdata = [
    'a' => 'aaa',
    'b' => 'bbb',
    'c' => 'ccc',
    'd' => 'ddd',
    'e' => 'eee'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1/a.php?puid=indexcode1&chan=01&zptime=20170609090506000&faceid=2&facescore=60&x=100&y=240&width=720&height=570&age=3&sex=1&glass=1&end=0&stay=10&picnum=2&gpsEW=E&longitude=130345&gpsNS=N&latitude=28650&remark=HTTP/1.1');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);

执行:

php b.php

结果:

图片描述

迷迭香的记忆 2022-09-14 16:00:08

GET和POST是请求方式,举个例子你就明白了

POST http://www.example.com/post?a...

  • 请求方式:POST
  • 请求地址,如上
  • 查询字符串 a=1&b=2

查询字符串是和请求方式无关的。只要放在URL当中的参数都是查询字符串,PHP通过$_GET读取

另外,看你问题中需要传的URL参数太多,有些地方可能会有编码问题,你可以用http_build_query,代码

$params = [
    'puid'=>'indexcode1',
    'chan'=>'01'
    //...
];
$url = '/service/upload_pic.php?'.http_build_query($params);
echo $url;
痴骨ら 2022-09-14 16:00:08

承蒙受邀
没看懂你表达的意思
那公司人虽然给你的demo。我猜可能是post访问,但是参数传值是通过get传输的。如果接口这么设计,我严重怀疑那人智商- -。~

比忠 2022-09-14 16:00:08

你问问他为什么post请求可以带参数吧,哦不,可以在url中显示参数,那不就是get了吗

迷路的信 2022-09-14 16:00:08

我觉得是某些url里面的参数是get传递的,但是重要参数还是curl post传送的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文