Gauti užklausas iš 1C padvigubėja. http užklausos peradresavimo tvarkymas

Kurdamas informacijos siuntimo iš 1C į svetainę su 8.3.9.2170 platformos versija procedūrą, susidūriau su problema: svetainės kūrėjas suteikė man galimybę įrašyti reikalinga informacija tik su pagalba HTTP užklausa naudojant PUT metodą.

Du kartus negalvodamas nubraižiau paprastą kodą:

Ryšys = naujas HTTP ryšys ("www.mysite.ru"); Antraštės = naujas atitikmuo; Headers["Content-Type"] = "application/x-www-form-urlencoded"; Užklausa = New HTTPRequest("/api/order_items/93076?order_item=30", Antraštės); Connection.Write(Request);

Remiantis vykdymo rezultatais, į sandėlį gautų prekių kiekis turėjo būti įrašytas į atitinkamą pirkėjo užsakymo eilutę svetainėje.

Tačiau, kaip tikriausiai jau supratote, nieko neįvyko. Įsitikinęs, kad svetainėje nėra klaidų (išsiųsdamas panašią užklausą per „Chrome“ papildinį), paleidau ją savo vietinis kompiuterisžiniatinklio serverį ir pradėjo eksperimentuoti.

Iš karto paaiškėjo keistas dalykas: Aukščiau pateiktas kodas generuoja ne PUT, o HEAD užklausą!

„Apache“ žurnaluose mačiau:

127.0.0.1 – „HEAD /api/order_items/93076?order_item=30 HTTP/1.1“

Buvau šiek tiek nustebęs (juk vadove buvo nespalvota PUT), bet nesupainiojau - metodą galite iškviesti tiesiogiai:

Connection.CallHTTPMethod("PUT",Užklausa);

Žurnalai rodo tą patį:

127.0.0.1 – „HEAD /api/order_items/93076?order_item=30 HTTP/1.1“

– Gal aš darau kažką ne taip? – uždaviau sau klausimą. Tačiau nei internete, nei žinynuose nebuvo jokių užuominų. Na, dar niekas neatšaukė mokslinio kibimo metodo. Pirmiausia bandžiau padaryti taip:

Connection.CallHTTPMethod("fyvfyv",Užklausa);

Žurnaluose, kuriuos gavau:

127.0.0.1 - "?????? /api/order_items/93076?order_item=30 HTTP/1.1"

Įdomu tai, kad 1C pakeičia konkrečiai PUT metodą (kodėl 1C nepatiko?).

Dar po kelių bandymų sugalvojau štai ką:

Connection.CallHTTPMethod("PUT",Užklausa);

Žurnaluose, kuriuos gavau:

127.0.0.1 - - "Įdėkite /api/order_items/93076?order_item=30 HTTP/1.1"

Ir ši parinktis svetainėje jau pasiteisino ir visi buvo patenkinti.

Jis pasiūlė teisingesnį problemos sprendimą: reikia nurodyti užklausos kūną, bet kokį kūną, net ir tuščią. Pavyzdžiui, ši parinktis veiks:

Ryšys = naujas HTTP ryšys ("www.mysite.ru"); Antraštės = naujas atitikmuo; Headers["Content-Type"] = "application/x-www-form-urlencoded"; Užklausa = New HTTPRequest("/api/order_items/93076?order_item=30", Antraštės); Request.SetBodyFromString("",TextEncoding.UTF8, UseByteOrderMark.NotUse); Connection.Write(Request);

Ir turbūt visai teisinga užklausos turinyje perduoti pačias parametrų reikšmes.

Išvada tokia: 1C platforma mano, kad PUT užklausa be kūno yra klaidinga ir pakeičia metodą HEAD.

Įdomu, kad 1C neseka POST užklausos be korpuso ir nepaverčia jos GET, aš patikrinau jį savo malonumui.

Kaip iš garsiojo pokšto pasakytų žinoma Vovočka: „Kur čia logika?

Tikiuosi, kad mano leidinys kažkam išgelbės kelias gyvenimo valandas, ieškant atsakymo. =)))

1C Enterprise 8.3 platformoje tapo įmanoma sukurti HTTP paslaugas

Naudodami integruotą kalbą dabar galite sugeneruoti atsakymą į užklausą. Tuo pačiu metu galite patogiai pasiekti pagrindinį turinį, antraštes ir šaltinio eilutę prašymas, taip pat galima generuoti kodą, turinį ir antraštes atsakyti savo nuožiūra.

Palyginti su SOAP platformoje esančiomis žiniatinklio paslaugomis, HTTP paslaugos turi daug privalumų:

  • Tokių paslaugų kliento programavimo paprastumas;
  • Potencialiai mažiau perduodamų duomenų;
  • Potencialiai mažesnė skaičiavimo apkrova;
  • HTTP paslaugos yra orientuotos į „išteklius“, o SOAP paslaugos – į „veiksmą“.

Duomenų bazėje demonstruojamas http paslaugų įgyvendinimas

http-service Sąskaitų faktūrų sąrašas

http paslauga naudoja URL šablonus ir įgyvendina nuosavybės apdorojimą ParametraiURL objektas HTTPServiceRequest
IN šiame pavyzdyje parodo, kaip galite sukurti tarpiklio pagrindą tarp darbo bazės ir įmonės svetainės
Prisijungiama prie demonstracinės duomenų bazės “ Prekybos valdymas 11“, kuriame pirmiausia kataloge „Darbo šalys“ turite nustatyti papildomą ypatybę su pavadinimu Interneto slaptažodis , kur saugosime prieigos slaptažodį.
Į http užklausą bus išsiųsti šie URL parametrai: TIN kaip prisijungimo vardas ir slaptažodis.
Apdorojant užklausą, per ComConnector jungiamasi prie UT (stabdžiai garantuojami), o iš ten imami mėginiai.
Neapsimetinėju, kad šis sprendimas greitas ar saugus, tai tik pavyzdys

Taigi. Metaduomenų medyje atsirado nauja šaka – HTTP paslaugos
Mes kuriame nauja paslauga, nurodykite jo pavadinimą ir šakninį URL (sąrašas)
Šakninis URL bus naudojamas mūsų http paslaugai iškviesti
Tada pridėkite URL šabloną prie http paslaugos, kaip šabloną nurodydami „/(Prisijungimas)/(Slaptažodis)“.
Šis šablonas leis jums gauti atitinkamą parametrų struktūrą ir jų reikšmes URL parametruose, kai apdorosite http užklausą.
Dabar prie mūsų URL šablono pridėsime metodą, vadinamą „gauti“, pasirinkite GET kaip http metodą
Atidarykite tvarkyklę ir parašykite kodą
Metodų tvarkytuvė yra funkcija, kuri turi grąžinti tipo reikšmę HTTPServiceResponse

http-paslaugos užsakymo būsena

Pavyzdyje įgyvendinamas POST metodu perduotų kintamųjų apdorojimas ir atsakymo generavimas HTML puslapio forma.
Šį kartą duomenys paimti iš duomenų bazės, kurioje yra hs, todėl veikia žymiai greičiau nei ankstesnė http paslauga.
Diegiant veikiančią sistemą prasminga duomenų bazėje kurti objektus (su paslauga) ir konfigūruoti duomenų perkėlimą iš šaltinio duomenų bazės (pvz., atskirti foninis procesas). Apdorojant http užklausą, atranka atliekama tiesiai iš duomenų bazės, kurioje ji yra.

Publikacija

Yra daug informacijos apie žiniatinklio serverio diegimą ir konfigūravimą.
Naudojau kūrimą httpd-2.2.25-win32-x86-openssl-0.9.8y.exe iš čia
Įdiegta naudojant "Next-Next-Finish" metodą :)
http paslaugų publikavimas yra toje pačioje vietoje, kur buvo ir yra ir nesiskiria interneto paslaugų publikavimas.
Įdiegę žiniatinklio serverį režimu „Konfigūratorius“, eikite į meniu „Administravimas“ – „Paskelbimas žiniatinklio serveryje“
Skirtuke „HTTP paslaugos“ nustatykite leidinio pavadinimą, žiniatinklio serverį, leidinių katalogą ir pažymėkite mūsų paslaugas (mano atveju pavadinimas yra „web“, „Apache 2.2“ žiniatinklio serveris)
Publikuojant atitinkami blokai automatiškai įrašomi į httpd.conf konfigūracijos failą ir serveris paleidžiamas iš naujo (pirmojo publikavimo metu)
Skambinkite į http paslaugą
Pavyzdys: http://mysite/web/hs/list, Kur
mano svetainė– serverio adresas (jei žiniatinklio serveris įdiegtas lokaliai, galite naudoti 127.0.0.1)
žiniatinklio– paskelbimo metu nurodytas vardas (alias)
hs– privalomas kelio segmentas, nurodantis serveriui, kad veiks su http paslaugomis
sąrašą– žiniatinklio paslaugos šakninis URL

Testavimas

Sąskaitų faktūrų sąrašas

http://127.0.0.1/web/hs/list/7705260681/pswMP (Nepamirškite UT nustatyti papildomos slaptažodžio nuosavybės)

Daroma prielaida, kad norėdamas pasiekti dokumentų registrą, vartotojas naudoja tiesioginę nuorodą, kurioje yra INN ir slaptažodis

Užsakymo būsena

http://127.0.0.1/web/hs/check

Užklausa ir atsakymas yra tame pačiame URL. Įeinant į puslapį, suveikia GET metodas, grąžinantis html formą

Paspaudus „Tikrinti“, užsakymo numeris POST metodu išsiunčiamas tuo pačiu URL, atsakymas grąžinamas ta pačia užklausos forma, papildyta duomenimis apie prašomą užsakymą.

Prisegtame faile yra 1C 8.3 duomenų bazės atsisiuntimas. Konfigūracija apima 2 http paslaugas (iš leidinio), com ryšio su demonstracine duomenų baze UT 11 nustatymą ir dokumentą „Užsakyti“.

Ko reikia norint paleisti ir išbandyti

  • Tinklapio serveris
  • bet kuri žiniatinklio naršyklė
  • dabartinis leidimas1C: Įmonė 8.3

Na, štai pavyzdys, kaip apdoroti XML failą su partneriais serverio pusėje:

VBS kodas
reikalauti_kartą dirname(__FILE__) . "/../inc/initf.php" ;
klasė Onec_Import_Customers (
privatus statinis $instance ;
funkcija __construct() (

Self::$instance = $this ;

Viešosios funkcijos procesas() (
$rawHttp = file_get_contents("php://input");
$xml_raw = str_replace("xml=", "", $rawHttp) ;

If ($_SESSION["prisijungęs"] || tiesa)(
file_put_contents("log/onec_import_customers_" .time(). ".log", "REQUEST " . print_r($_REQUEST, 1) . " SERVER " . print_r($_SERVER,1). " FILES " . print_r($_FILES, 1) .$xml_raw) ;
file_put_contents("log/onec_import_customers_last.log", "REQUEST" . print_r($_REQUEST, 1) . " SERVER " . print_r($_SERVER,1). " FILES " . print_r($_FILES,1) . $xml_raw) ;

//$xml = brūkšniai ($_POST["xml"]);
$xml = brūkšniai ($xml_raw);
if(!$xml) (
$xml = $xml_raw ;
//die ("nėra XML duomenų (post key "xml")") ;
}
if ($this->setCustomers($xml)) (
mirti („Gerai“);
) Kitas (
mirti ("FIL");
}
) Kitas (
mirti ();
}
}

Privati ​​funkcija setCustomers($xml)(
$db = db::getInstance() ;

$sxml = simplexml_load_string($xml) ;

$klientai = $sxml->("Договор")? $sxml->("воговор") : self::err("Neteisingas failo formatas. Klientai.") ;

$galutinis = masyvas () ;
$k = 0;

$allCustomers = masyvas () ;

Foreach ($customers kaip $cust) (
$slaptažodis = base::generatePassword(6,1) ;

$arr ["slaptažodis"] = $slaptažodis ;

$arr ["el. paštas"] = (masyvas)$cust->("Почта") ;//? (masyvas)$cust->("Почта") : self::err("Neteisingas failo formatas. Kliento Nr:" . $k . ". Neteisingas el. paštas") ;
$arr ["email"] = $arr ["email"] ? $arr ["email"] : "";//: self::err("Netinkamas failo formatas. kliento nr:" . $k . ". Neteisingas el. paštas" ;

$arr ["programos_pavadinimas"] = (masyvas)$cust->("РќР°Ременование") ;//? (masyvas)$cust->("РќР°Ременование") : self::err("Neteisingas failo formatas. Kliento Nr:" . $k . ". Neteisingas pavadinimas" ;
$arr ["app_name"] = $arr ["programos_pavadinimas"]? $arr ["programos_pavadinimas"] : "";//self::err("Netinkamas failo formatas. kliento nr:" . $k . ". Neteisingas pavadinimas") ;

$arr ["clientid"] = (masyvas)$cust->("Номер") ? (masyvas)$cust->("Номер") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas kliento ID" ;
$arr ["clientid"] = $arr ["klientas"]? $arr ["clientid"] : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas kliento ID" ;

$arr ["data"] = (masyvas)$cust->("ата") ? (masyvas)$cust->("ата") : self::err("Netinkamas failo formatas. Klientų nr:" . $k." ". Neteisinga data" ;
$arr ["data"] = $arr ["data"] ? $arr ["data"] : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisinga data" ;

$arr ["data"] = explode(".",$arr ["data"]);
krsort($arr ["data"]);
$arr ["data"] = implode("-",$arr ["data"]) . "00:00:00" ;

$arr ["phone_home"] = (masyvas)$cust->("ТелефоРS") ;//? (masyvas)$cust->("ТелефоРС") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas telefonas") ;
$arr ["phone_home"] = $arr ["phone_home"] ? $arr ["phone_home"] : "";//self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas telefonas" ;

$arr ["rajonas"] = (masyvas)$cust->("РайоРС") ;//? (masyvas)$cust->("айон") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas rajonas" ;
$arr ["rajonas"] = $arr ["rajonas"] ? $arr ["rajonas"] : "";//self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas rajonas" ;

$arr ["gatvė"] = (masyvas)$cust->("Улица") ;//? (masyvas)$cust->("Улица") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisinga gatvė") ;
$arr ["gatvė"] = $arr ["gatvė"] ? $arr ["street"] : "";//self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisinga gatvė" ;

$arr ["pastatas"] = (masyvas)$cust->("Дом") ;//? (masyvas)$cust->("Дом") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas pastatas") ;
$arr ["pastatas"] = $arr ["pastatas"] ? $arr ["pastatas"] : "" ;//self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas pastatas" ;

$arr ["apartamentas"] = (masyvas)$cust->("Квартира") ;//? (masyvas)$cust->("Квартира") : self::err("Netinkamas failo formatas. Klientų nr:" . $k . ". Neteisingas butas") ;
$arr ["butas"] = $arr ["butas"] ? $arr ["apartament"] : "";// self::err("Neteisingas failo formatas. Klientų nr:" . $k . ". Neteisingas butas" ;

$allCustomers [$arr ["clientid"]]= array("password"=>$slaptažodis, "email"=>$arr ["el. paštas"]) ;

$galutinis = $arr ;
+$k ;
}

Grąžinti $this->buildCustomers($final) ;
/*
if($this->buildCustomers($final)) (
foreach ($allCustomers kaip $clientid=>$data) (
self::sendPasswordToMail($data["el. paštas"], $klientas, $duomenys["slaptažodis"]) ;
}
}*/

Privati ​​statinė funkcija sendPasswordToMail($el. paštas, $kliento_id, $slaptažodis) (
$db = db::getInstance() ;
$config = config_model::getInstance() ;
$Lng = Užklausa::$currentLang["id"] ;
$email_text = $db->getRow("s1_text", "*", "`alias`="registration_ok" AND `lng_id`="($lng)"");
$body = str_replace("%slaptažodis%", $slaptažodis, $el.pašto_tekstas["turinys"]) ;
$body = str_replace("%kliento_id%", $kliento_id, $body) ;
base::mailSend($body, $el.pašto_tekstas["pavadinimas"] . " - " . $config->defaultTitle("site.ru") , $email, $app["programos_pavadinimas"], $config->site_admin_mail( “ [apsaugotas el. paštas]"), $config->from_name("svetainė")) ;

Privati ​​funkcija buildCustomers ($data) (

$db = db::getInstance() ;

$qry = "Įterpiu į s1_customer (aktyvus, slaptažodis, programos_pavadinimas, el. paštas, data, kliento kodas, telefono_namai, gatvė, rajonas, pastatas, butas `) VERTYBĖS " ;
foreach ($duomenys kaip $rows)(
$queryArr = "(
"0"
,MD5("($rows["slaptažodis">")
"($db->escape($rows["programos_pavadinimas"]))"
"($db->escape($rows["el. paštas"]))"
"($db->escape($rows["data"]))"
"($db->escape($rows["kliento kodas"]))"
"($db->escape($rows["phone_home"]))"
"($db->escape($rows["gatvė"]))"
"($db->pabėgimas($rows["rajonas"]))"
"($db->pabėgimas($rows["pastatas"]))"
"($db->pabėgimas($rows["butas"]))"
)" ;
}
$qry .= implode(",", $queryArr) ;
$qry .= " DUBLIKAS RAKTŲ ATNAUJINIMO
`programos_pavadinimas` = VERTYBĖS(programos_pavadinimas)
,data = VERTĖS (data)
,`el. paštas` = VERTĖS(el. paštas)
,`name_name` = VERTYBĖS(telefono_namai)
,`gatvė` = VERTĖS (gatvė)
,`rajonas` = VERTĖS(rajonas)
,`pastatas` = VERTĖS(pastatas)
,"butas" = VERTĖS (butas)
" ;
return $db->query($qry) ;
}

Vieša statinė funkcija getInstance())(
if (!self::$instance)
{
naujasis aš() ;
}
grąžinti save::$instance ;

Privati ​​statinė funkcija err($msg) (
mesti naują ImportException($msg) ;
}

Klasė ImportException išplečia išimtis (

Funkcija __construct ($msg) (
die ("Klaida: " . $msg) ;

Pradedant nuo antrosios 8 platformos versijos, vartotojai ir kūrėjai turi galimybę naudoti http užklausą tiesiogiai 1C. Programa palaiko dviejų tipų užklausas:

  • POST užklausos;
  • GAUTI užklausas.

Taip buvo sukurtas gana patogus įrankis keistis duomenimis ir bendrauti su interneto paslaugomis bei paslaugomis, veikiančiomis per http.

GAUTI prašymą

Žinoma, paprasčiausi užklausų naudojimo pavyzdžiai iliustruoja jų galimybes daug geriau nei daugelis aprašymo eilučių. Taigi pabandykime:

  1. Paimkime pagrindinio mūsų svetainės puslapio turinį;
  2. Mes stengsimės nukreipti užklausą;
  3. Paimkime nuotrauką iš svetainės.

Svetainės turinio gavimas

Pradėkime nuo kažko paprasto. Pav..

Šios kodo dalies vykdymo rezultatas yra gana didelis tekstas, kurio paskutinė dalis parodyta 2 pav.

2 pav

Pirmoje kodo eilutėje sukuriame ryšio objektą su http šaltiniu. Objektas gali turėti šias savybes:

  • Serveris – ryšio eilutė su serverio adresu;
  • Prievadas – yra skaičius, nurodantis serverio prievadą; pagal numatytuosius nustatymus, priklausomai nuo ryšio tipo, galite nurodyti 80 neapsaugoti ryšiai arba 443, kai apsaugotas SSL.
  • Vartotojo vardas – nurodomas, jei reikalingas autorizavimas serveryje;
  • Slaptažodis – vartotojo slaptažodis nurodytame resurse;
  • Tarpinis serveris – gali turėti InternetProxy tipo objektą, kuris nurodomas, kai ryšiui su serveriu naudojamas tarpinis serveris;
  • Saugus ryšys – numatytoji reikšmė yra FALSE, perjungimas į TRUE rodo, kad naudojamas https protokolas.

Be to, HTTPConnection objektas turi savo metodus, kurie leidžia išsamiau apibūdinti tvarkyklės vykdymo algoritmą:

  • CallHTTPmethod – turi du būtinus parametrus, HTTPmethod ir HTTPrequest, palaiko galimybę įrašyti atsakymo turinį į trečiame parametre nurodytą failą;
  • Rašyti – naudojant PUT užklausą, siunčia duomenis į serverį;
  • Modifikuoti – modifikuoja objektą apdorojant PATCH užklausas;
  • SendForProcessing – metodas, nurodantis POST užklausos naudojimą, kaip ir visuose ankstesniuose metoduose, turi turėti užklausos tekstą, taip pat gali perduoti atsakymo failo adresą duomenims įrašyti;
  • Gauti - tai bus išsamiau aptarta toliau;
  • GetHeadings yra kitas metodas, kuris bus naudojamas straipsnyje;
  • Ištrynimas iš tikrųjų yra panaikinimo užklausa, kuri pašalina iš serverio užklausoje pateiktus išteklius.

Antroje eilutėje sukuriame užklausą pasirinktai svetainei, mūsų užklausos tekste yra vienas pasvirasis brūkšnys, o tai reiškia, kad norime gauti pagrindinis puslapis. Jei po pasvirojo brūkšnio būtų koks nors posakis, pvz., „2 puslapis“ arba „naujienos“, gautume kitą puslapį.

Trečioji eilutė vykdo mūsų užklausą serveriui.

Ketvirtajame rodome rezultatą.

http užklausos peradresavimo tvarkymas

Įsivaizduokime situaciją, kai reikia programiškai gauti paieškos rezultatą per bet kurį paieškos variklis mygtuku „Užklausos per 1s“. Kodo dalis, reikalinga norint pasiekti GOOGLE, parodyta 3 pav

3 pav

Čia, be mums jau žinomų struktūrų, yra antraštės ir būsenos kodas. Susitvarkykime su jais.

Būsenos kodas – standartinė reikšmė, nurodyta „Komentarų užklausoje“, gali turėti šias reikšmes:

  1. Jei viskas gerai, vertė grįš intervale nuo 100 iki 299;
  2. Peradresavimo atveju bus grąžintas kodas nuo 300 iki 399, mūsų atveju sėkmingą nuolatinį peradresavimą į išteklius lems kodas 301;
  3. Jei užklausoje yra klaidų, parametro reikšmė bus nuo 400 iki 499;
  4. Vertė diapazone nuo 500 iki 599 rodo serverio problemas.

Kiekvienas puslapis turi pavadinimą, kurio tekste galima išskirti kelis parametrus (4 pav.):

  1. Sujungimo schema (viskas, kas yra prieš du pasviruosius brūkšnius „//“);
  2. Adreso juosta jungtys;
  3. Vartotojo vardas ir slaptažodis;
  4. Prievadas ir pagrindinis kompiuteris, prie kurio reikia prisijungti.

Būtent šį padalijimą atlieka funkcija SplitAddressLine. Taip gavę naują adresą, galime išsaugoti puslapį savo kompiuteryje ir atidaryti jį numatytoje naršyklėje (GetPage procedūra).

5 pav

Čia nėra jokių naujų funkcijų ar būdų dirbti su užklausomis, mes iš tikrųjų kuriame Tekstinis dokumentas iš svetainės turinio ir paleiskite puslapį naršyklėje.

Įdedame failą į disko D šaknį ir vadiname testu.

Mes paimame vaizdą iš svetainės

Kyla natūralus klausimas: jei mums nereikia visos svetainės, o reikia gauti tik atskirus jos elementus, ar tai galima padaryti ir kaip? Taip tu gali. Programos kodas, leidžiantis tai padaryti, pateiktas 6 pav

6 pav

Kaip matote iš paveikslo, užklausos turinyje turime svetainės struktūros elemento kodą, kurį turime gauti. Šios dalies nebuvo mūsų ankstesniame aprašyme, todėl turime prie šio klausimo pasilikti išsamiau.

Naudojome naršyklę Opera, kad pasiektumėte svetainę. Jis turi vieną mums svarbų įrankį: dešiniuoju pelės mygtuku spustelėję elementą galite paskambinti kontekstinis meniu, vienas iš elementų yra „Žiūrėti elemento kodą“.

Jo dėka galime gauti adresą, kuris bus naudojamas užklausoje 7 pav.

POST užklausa

Skirtingai nuo paprastų gauti užklausų, POST http užklausos turi tekstinį turinį, kuris gali būti saugomas gryno teksto forma arba failų, kurių plėtinys yra xml, soap, json, pavidalu. Tinkle yra gana daug įrankių, skirtų užklausų tekstams kurti, kurie leidžia derinti ir stebėti tam tikrų užklausų vykdymą.

1C, norint paleisti užklausą su konkrečiu tekstu, HTTP užklausos objektas turi SetBodyFromString procedūrą.

Dalintis