鍍金池/ 問答/PHP  Linux  數(shù)據(jù)庫  HTML/ http POST 路由怎么在url中傳參數(shù)

http POST 路由怎么在url中傳參數(shù)

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.這是一家公司給的接口文檔,我當(dāng)時問post請求地址欄怎么可以帶參數(shù)的,對面給我回了一句誰告訴你post請求地址欄是不可以帶參數(shù)的,瞬間懵了,搞得哦我現(xiàn)在都不敢問他,我是本地利用curl模擬請求,
clipboard.png

clipboard.png
3.
clipboard.png
4.我用第一張圖片的不帶參數(shù)的url(注釋了的url),第二張圖片路由后面的puid等參數(shù)去掉,第三張圖片dd(123)是有結(jié)果的,但是現(xiàn)在別人的文檔是要求post是帶參數(shù)的,我路由就是第二張圖片中的路由,這樣肯定是404,所以我想問post是怎么在地址欄中可以傳參數(shù),煩請各路大神指點一二。

回答
編輯回答
編輯回答
毀與悔

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);

執(zhí)行:

php b.php

結(jié)果:

圖片描述

2017年3月30日 11:43
編輯回答
互擼娃

GET和POST是請求方式,舉個例子你就明白了

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

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

查詢字符串是和請求方式無關(guān)的。只要放在URL當(dāng)中的參數(shù)都是查詢字符串,PHP通過$_GET讀取

另外,看你問題中需要傳的URL參數(shù)太多,有些地方可能會有編碼問題,你可以用http_build_query,代碼

$params = [
    'puid'=>'indexcode1',
    'chan'=>'01'
    //...
];
$url = '/service/upload_pic.php?'.http_build_query($params);
echo $url;
2017年10月17日 22:10
編輯回答
舊言

你問問他為什么post請求可以帶參數(shù)吧,哦不,可以在url中顯示參數(shù),那不就是get了嗎

2018年1月14日 10:29
編輯回答
墨沫

我覺得是某些url里面的參數(shù)是get傳遞的,但是重要參數(shù)還是curl post傳送的

2017年8月16日 01:01
編輯回答
生性

承蒙受邀
沒看懂你表達的意思
那公司人雖然給你的demo。我猜可能是post訪問,但是參數(shù)傳值是通過get傳輸?shù)摹H绻涌谶@么設(shè)計,我嚴重懷疑那人智商- -?!?/p>

2018年5月14日 07:36
編輯回答
青檸

謝邀
不能改接口那就請求前先拼好url,然后設(shè)置好post字段就好了
發(fā)送post請求,url里的get參數(shù)仍然可以接收的,$_GET,$_POST都有值

2018年5月24日 03:18