Řešení problémů s FreeBSD CURL s metodami POST / GET / PUT / DELETE a json soubory


Naším cílem je odstraňování problémů GET a POST metody s KUČERA. Již jsme nakonfigurovali dva servery:

  1. frfs.unixmen.com (Odesíláme požadavky CURL od tohoto stroje)
  2. asterisk.unixmen.com (Tento webový server přijímá požadavky POST a GET)

kučera

Předpokládá se, že již byly staženy a nainstalovány FAMP na asterisk.unixmen.com server. Náš webový server pracuje s protokolem SSL a pro testy budeme kopírovat již vygenerované asterisk.pem klíčem k našemu frfs.unixmen.com Server / Root složky. Na stejném WEB serveru již nainstalován a nakonfigurován MySQL.

Pro MySQL databázi bude náš systém následující:
mysql> CREATE DATABASE websayt;
mysql> použijte websayt
mysql> CREATE TABLE Osoby (ID int, FirstName varchar (45), LastName varchar (45), eMail varchar (45), mPhone varchar (15), PRIMARY KEY (ID));
mysql> GRANT ALL PRIVILEGES NA websayt. * TO 'websayt'@ localhost' IDENTIFIKOVANÝ "freebsd';
mysql> FLOW PRIVILEGES;

Představte si to, naše PUBLIC_HTML cesta ke složce je / usr / local / www / hvězdička. V této složce vytvoříme dva soubory. postapi.php a getapi.php. Budeme používat getapi.php Soubor s zakřivením pro výběr informací z databáze. S postapi.php soubor do databáze vložíme potřebné informace.

Obsah obsahu postapi.php soubor bude následující:
<? Php
$ data_back = json_decode (file_get_contents ('php: // vstup'));
// nastavte json string na php proměnné
$ id = $ data_back -> {"id");
$ firstname = $ data_back -> {"firstName"};
$ lastName = $ data_back -> {"posledníName"};
$ email = $ data_back -> {"email"};
$ mPhone = $ data_back -> {"mPhone"};
// Připojení k databázi
$ název_serveru = "localhost";
$ username = "websayt";
$ heslo = "freebsd";
$ dbname = "websayt";
// Vytvořit připojení
$ conn = nový mysqli ($ název_serveru, $ username, $ heslo, $ dbname);
// Zkontrolujte připojení
pokud ($ conn-> connect_error) {
die ("Připojení selhalo:". $ conn-> connect_error);
}
$ sql = "INSERT INTO Osoby (id, jméno, příjmení, e-mail, telefon) VALUES ('$ id', '$ firstName', '$ lastName', '$ email', '$ mPhone')";
// nastavit záhlaví jako json
// header ("Obsahový typ: aplikace / json");
pokud ($ conn-> dotaz ($ sql) === TRUE) {
echo "Nový záznam byl úspěšně vytvořen";
} Else {
echo "Chyba:". $ sql. "<br>". $ conn-> error;
}
$ conn-> zavřít ();
>

Obsah obsahu getapi.php soubor bude následující:
<? Php
$ mPhone = $ data_back -> {"mPhone"};
$ název_serveru = "localhost";
$ username = "websayt";
$ heslo = "freebsd";
$ dbname = "websayt";
// Vytvořit připojení
$ conn = nový mysqli ($ název_serveru, $ username, $ heslo, $ dbname);
// Zkontrolujte připojení
pokud ($ conn-> connect_error) {
die ("Připojení selhalo:". $ conn-> connect_error);
}
$ sql = "vyberte $ _GET [param] od osob, kde id = $ _GET [id]";
// echo $ sql;
// nastavit záhlaví jako json
// header ("Obsahový typ: aplikace / json");
$ výsledek = $ conn-> dotaz ($ sql);
pokud (! $ výsledek)
{
("Chyba připojení");
}
pokud ($ výsledek-> num_rows> 0)
{
zatímco ($ řádek = $ výsledek-> fetch_assoc ())
{
echo $ řádek [$ _ GET [param]] PHP_EOL;
break;
}
Else {}
echo "výsledky 0";
}
$ conn-> zavřít ();
>

A teď budeme používat frfs.unixmen.com server pro testování s KUČERA. Uděláme to GET a POST Žádosti.

Do řádku přidejte následující řádky /root/body.json soubor. V tomto řádku říkáme vložení všech těchto informací do těchto sloupců id 1:
{
"Id": 1,
"FirstName": "Eziyyet",
"LastName": "Zulumov",
"e-mailem": "[Email chráněn]",
"MPhone": "0552592433"
}

Použijte metodu POST:
curl -i -v3 -cacer /root/asterisk.pem -X POST -d @ / root / body.json -H "Obsahový typ: application / json" https://asterisk.unixmen.com/postapi.php
-i - Přidejte do výstupu HTTP hlavičku
-v3 - Podrobnější detailní úroveň (úroveň 3)
-cacert - Osvědčení, které získali asterisk.unixmen.com použijeme zde jako argument.
-X - Nastavit použitou metodu HTTP. V předchozím příkazu jsme použili POST.
-d - Odeslat kódy json v adresáři /root/body.json soubor s požadavkem na POST na server HTTP. Buďte opatrní, než cesta k souboru musí být '@'(jinak nebude fungovat).
-H - Když pošleme žádost serveru HTTP, s touto volbou definujeme záhlaví připojit. V našem případě, jak jsme použili json, použijeme "Obsahový typ: aplikace / json"

Použijte metodu GET:
curl -i -v3 -cacert /root/asterisk.pem -X GET "https://asterisk.unixmen.com/getapi.php?id=1&param=mphone"
-X - A tady říkáme, že používáme https://asterisk.unixmen.com/getapi.php URL s GET a vyberte informace ve sloupci id s číslem 1 od mfon sloupec.

Pokud budeme vypnout protokolování a hlavičku protokolu HTTP, výsledek příkazu bude následující:
curl -cacert /root/asterisk.pem -X GET "https://asterisk.unixmen.com/getapi.php?id=1&param=firstname"
Eziyyet

Použijte stejným způsobem PUT a DELETE metody můžeme aktualizovat a odstranit libovolný sloupec tabulky z naší databáze MySQL. Za to vytvoříme dva soubory v našem PUBLIC_HTML desky / usr / local / www / hvězdička s jmény putapi.php a deleteapi.php. Obsah obsahu /usr/local/www/asterisk/putapi.php soubor bude následující:
<? Php
$ json = file_get_contents ('php: // vstup');
$ data_back = json_decode ($ json);
$ id = $ data_back -> {"id");
$ paramName = $ data_back -> {"paramName"};
$ paramValue = $ data_back -> {"paramValue"};
$ servername = "127.0.0.1";
$ username = "websayt";
$ heslo = "freebsd";
$ dbname = "websayt";
// Vytvořit připojení
$ conn = nový mysqli ($ název_serveru, $ username, $ heslo, $ dbname);
// Zkontrolujte připojení
pokud ($ conn-> connect_error) {
die ("Připojení selhalo:". $ conn-> connect_error);
}
$ sql = "UPDATE Osoby SET $ paramName = '$ paramValue' WHERE id = $ id";
// nastavit záhlaví jako json
// header ("Obsahový typ: aplikace / json");
pokud ($ conn-> dotaz ($ sql) === TRUE) {
echo "Aktualizace byla úspěšná.";
} Else {
echo "Chyba:". $ sql. "<br>". $ conn-> error;
}
$ conn-> zavřít ();
// echo $ id. "" $ paramName. "" $ paramValue.PHP_EOL;
>

Obsah obsahu /usr/local/www/asterisk/deleteapi.php soubor bude následující:
<? Php
$ json = file_get_contents ('php: // vstup');
$ data_back = json_decode ($ json);
$ id = $ data_back -> {"id");
$ servername = "127.0.0.1";
$ username = "websayt";
$ heslo = "freebsd";
$ dbname = "websayt";
// Vytvořit připojení
$ conn = nový mysqli ($ název_serveru, $ username, $ heslo, $ dbname);
// Zkontrolujte připojení
pokud ($ conn-> connect_error) {
die ("Připojení selhalo:". $ conn-> connect_error);
}
$ sql = "odstranit z osob, kde id = $ id";
pokud ($ conn-> dotaz ($ sql) === TRUE) {
echo "Smazání bylo úspěšné.";
} Else {
echo "Chyba:". $ sql. "<br>". $ conn-> error;
}
$ conn-> zavřít ();
>

Pro testování těchto dvou metod v našem frfs.unixmen.com server, který vytvoříme put.json a delete.json soubory a přidá obsah do těchto souborů, které potřebujeme. Vytvořit /root/put.json soubor a přidejte obsah níže (změňte hodnotu paramValue sloupec, kde je ID 10 na [Email chráněn]):
{
"Id": 10,
"ParamName": "e-mail",
"ParamValue": "[Email chráněn]"
}

Vytvořit /root/delete.json soubor a přidejte obsah níže (Odeslání řádku pomocí ID 3 k DELETE metoda, která odstraní tento řádek):
{
"Id": 3
}

Testování:
curl -cacert /root/asterisk.pem -X GET -H "Přijmout: application / json" -d @ / root / put.json https://asterisk.unixmen.com/putapi.php
-X - Použitím GET metoda

curl -cacert /root/asterisk.pem -X DELETE -H "Přijmout: application / json" -d @ / root / delete.json https://asterisk.unixmen.com/deleteapi.php
-X -Použitím DELETE metoda

Řešení potíží s postupem FreeBSD CURL s metodami POST / GET / PUT / DELETE a soubory json se objevilo nejprve na Unixmen.

Napsat komentář