FreeBSD CURL fejlfinding med POST / GET / PUT / DELETE metoder og json filer


Vores mål er fejlfinding af GET og POST metoder med CURL. Vi har allerede konfigureret to servere:

  1. frfs.unixmen.com (Vi sender CURL anmodninger fra denne maskine)
  2. asterisk.unixmen.com (Denne WEB-server tager POST- og GET-anmodninger)

cURL

Det antages at allerede downloadet og installeret FAMP til asterisk.unixmen.com server. Vores webserver arbejder sammen med SSL og for tests, vi kopierer, der allerede er genereret asterisk.pem nøglen til vores frfs.unixmen.com server / Root folder. I den samme WEB-server er MySQL allerede installeret og konfigureret.

For MySQL-databasen er vores ordning som følger:
mysql> Opret DATABASE websayt;
mysql> brug websayt
mysql> CREATE TABLE Personer (ID int, FirstName varchar (45), LastName varchar (45), eMail varchar (45), mPhone varchar (15), PRIMARY KEY (ID));
mysql> GIVE ALL PRIVILEGES ON websayt. * TIL 'websayt'@' Localhost' IDENTIFIERET AF 'freeBSD';
mysql> FLUSH PRIVILEGES;

Forestil dig det, vores public_html mappebane er / Usr / local / www / stjerne. I denne mappe opretter vi to filer. postapi.php og getapi.php. Vi vil bruge getapi.php fil med curl for at vælge oplysninger fra databasen. Med postapi.php fil vil vi indsætte nødvendige oplysninger til vores database.

Indholdet af postapi.php filen vil være som følger:
<? Php
$ data_back = json_decode (file_get_contents ('php: // input'));
// sæt json streng til php variabler
$ id = $ data_back -> {"id"};
$ firstName = $ data_back -> {"firstName"};
$ lastName = $ data_back -> {"lastName"};
$ email = $ data_back -> {"email"};
$ mPhone = $ data_back -> {"mPhone"};
// Databaseforbindelse
$ servername = "localhost";
$ username = "websayt";
$ password = "freebsd";
$ dbname = "websayt";
// Opret forbindelse
$ conn = ny mysqli ($ servernavn, $ brugernavn, $ password, $ dbname);
// Kontroller forbindelsen
hvis ($ conn-> connect_error) {
die ("Connection failed:". $ conn-> connect_error);
}
$ sql = "INSERT TIL personer (id, fornavn, efternavn, email, mphone) VÆRDIER ('$ id', '$ firstName', '$ lastName', '$ email', '$ mPhone')";
// sæt overskrift som json
// header ("Content-type: application / json");
hvis ($ conn-> forespørgsel ($ sql) === TRUE) {
ekko "Ny rekord oprettet med succes";
} Else {
ekko "Fejl:". $ sql. "<br>". $ Conn-> fejl;
}
$ Conn-> tæt ();
?>

Indholdet af getapi.php filen vil være som følger:
<? Php
$ mPhone = $ data_back -> {"mPhone"};
$ servername = "localhost";
$ username = "websayt";
$ password = "freebsd";
$ dbname = "websayt";
// Opret forbindelse
$ conn = ny mysqli ($ servernavn, $ brugernavn, $ password, $ dbname);
// Kontroller forbindelsen
hvis ($ conn-> connect_error) {
die ("Connection failed:". $ conn-> connect_error);
}
$ sql = "vælg $ _GET [param] fra Personer hvor id = $ _GET [id]";
// echo $ sql;
// sæt overskrift som json
// header ("Content-type: application / json");
$ result = $ conn-> forespørgsel ($ sql);
if (! $ resultat)
{
dø ('Connection error');
}
if ($ resultatorienteret> NUM_ROWS> 0)
{
mens ($ row = $ result-> fetch_assoc ())
{
ekko $ række [$ _ GET [param]]. PHP_EOL;
break;
}
Else {}
ekko "0 resultater";
}
$ Conn-> tæt ();
?>

Og nu vil vi bruge frfs.unixmen.com server til test med CURL. Vi vil gøre GET og POST anmodninger.

Tilføj følgende linjer til /root/body.json fil. I denne rækkefølge fortæller vi alle disse oplysninger til disse kolonner med id 1:
{
"Id": 1,
"FirstName": "Eziyyet",
"LastName": "Zulumov",
"Email": "[Email protected]",
"MPhone": "0552592433"
}

Brug POST-metoden:
curl -i -v3 -cacert /root/asterisk.pem -X POST -d @ / root / body.json -H "Content-Type: application / json" https://asterisk.unixmen.com/postapi.php
-i - Tilføj HTTP-header i output
-v3 - Flere detaljer verbose niveau (3th niveau)
-cacert - Certifikatet, der er hentet fra asterisk.unixmen.com vi vil bruge her som argument.
-X - Indstil brugt HTTP-metode. I tidligere kommando brugte vi POST.
-d - Send json koderne i /root/body.json fil med POST-anmodning til HTTP-serveren. Pas på, før filsti skal være '@'symbol (ellers fungerer ikke).
-H - Når vi sender anmodning til HTTP-serveren, vælger vi vedhæftet header med denne indstilling. I vores tilfælde som vi brugte json bruger vi "Content-Type: application / json"

Brug GET-metoden:
curl -i -v3 -cacert /root/asterisk.pem -X GET "https://asterisk.unixmen.com/getapi.php?id=1&param=mphone"
-X - Og her fortæller vi at bruge https://asterisk.unixmen.com/getapi.php URL med GET metode og vælg oplysninger i kolonne id med nummer 1 fra mphone kolonne.

Hvis vi vil slukke for logging og HTTP header, vil resultatet af kommando være som følger:
curl -cacert /root/asterisk.pem -X GET "https://asterisk.unixmen.com/getapi.php?id=1&param=firstname"
Eziyyet

På samme måde med PUT og SLET metoder vi kan opdatere og slette enhver kolonne af tabel fra vores MySQL database. For det vil vi oprette to filer i vores public_html mappe / Usr / local / www / stjerne med navne putapi.php og deleteapi.php. Indholdet af /usr/local/www/asterisk/putapi.php filen vil være som følger:
<? Php
$ json = file_get_contents ('php: // input');
$ data_back = json_decode ($ json);
$ id = $ data_back -> {"id"};
$ paramName = $ data_back -> {"paramName"};
$ paramValue = $ data_back -> {"paramValue"};
$ servernavn = "127.0.0.1";
$ username = "websayt";
$ password = "freebsd";
$ dbname = "websayt";
// Opret forbindelse
$ conn = ny mysqli ($ servernavn, $ brugernavn, $ password, $ dbname);
// Kontroller forbindelsen
hvis ($ conn-> connect_error) {
die ("Connection failed:". $ conn-> connect_error);
}
$ sql = "UPDATE Personer SET $ paramName = '$ paramValue' hvor id = $ id";
// sæt overskrift som json
// header ("Content-type: application / json");
hvis ($ conn-> forespørgsel ($ sql) === TRUE) {
ekko "Update was successful.";
} Else {
ekko "Fejl:". $ sql. "<br>". $ Conn-> fejl;
}
$ Conn-> tæt ();
// echo $ id. "". $ paramName. "". $ paramValue.PHP_EOL;
?>

Indholdet af /usr/local/www/asterisk/deleteapi.php filen vil være som følger:
<? Php
$ json = file_get_contents ('php: // input');
$ data_back = json_decode ($ json);
$ id = $ data_back -> {"id"};
$ servernavn = "127.0.0.1";
$ username = "websayt";
$ password = "freebsd";
$ dbname = "websayt";
// Opret forbindelse
$ conn = ny mysqli ($ servernavn, $ brugernavn, $ password, $ dbname);
// Kontroller forbindelsen
hvis ($ conn-> connect_error) {
die ("Connection failed:". $ conn-> connect_error);
}
$ sql = "Slet fra personer, hvor id = $ id";
hvis ($ conn-> forespørgsel ($ sql) === TRUE) {
ekko "Slet var vellykket.";
} Else {
ekko "Fejl:". $ sql. "<br>". $ Conn-> fejl;
}
$ Conn-> tæt ();
?>

Til test af disse to metoder i vores frfs.unixmen.com server vi vil oprette put.json og delete.json filer og vil tilføje indhold til disse filer, som vi har brug for. skab /root/put.json fil og tilføj indhold som nedenfor (Skift værdien af paramValue kolonne hvor ID er 10 til [Email protected]):
{
"Id": 10,
"ParamName": "email",
"ParamValue": "[Email protected]"
}

Opret /root/delete.json fil og tilføj indhold som nedenfor (Send linjen med ID 3 til SLET metode, som vil slette denne linje):
{
"Id": 3
}

Test:
curl -cacert /root/asterisk.pem -X GET -H "Accept: application / json" -d @ / root / put.json https://asterisk.unixmen.com/putapi.php
-X - Ved brug af GET metode

curl -cacert /root/asterisk.pem -X DELETE -H "Accept: application / json" -d @ / root / delete.json https://asterisk.unixmen.com/deleteapi.php
-X -Ved brug af SLET metode

Posten FreeBSD CURL fejlfinding med POST / GET / PUT / DELETE metoder og json filer dukkede først op Unixmen.

Efterlad en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.