1C의 요청 받기가 두 배로 늘어납니다. http 요청 리디렉션 처리

1C에서 플랫폼 버전 8.3.9.2170을 사용하는 사이트로 정보를 전송하는 절차를 개발할 때 문제가 발생했습니다. 사이트 개발자가 나에게 녹음 기능을 제공했습니다. 필요한 정보도움을 받아야만 HTTP 요청 PUT 메소드를 사용합니다.

두 번 생각하지 않고 간단한 코드를 작성했습니다.

연결 = 새 HTTPConnection("www.mysite.ru"); 헤더 = 새 경기; 헤더["Content-Type"] = "application/x-www-form-urlencoded"; 요청 = 새 HTTPRequest("/api/order_items/93076?order_item=30", 헤더); 연결.쓰기(요청);

실행 결과에 따라 창고에 입고된 상품의 수량은 웹사이트의 구매자 주문 해당 라인에 입력되어 있어야 합니다.

그러나 이미 이해하셨겠지만 아무 일도 일어나지 않았습니다. (Chrome 플러그인을 통해 유사한 요청을 보내) 사이트에 오류가 없는지 확인한 후 내 사이트에서 해당 사이트를 시작했습니다. 로컬 컴퓨터웹 서버를 테스트하고 실험을 시작했습니다.

이상한 점이 즉시 분명해졌습니다. 위 코드는 PUT을 생성하지 않고 HEAD 요청을 생성합니다!

Apache 로그에서 다음을 확인했습니다.

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

저는 조금 놀랐지만(결국 설명서에는 PUT이 흑백으로 적혀 있었습니다) 당황하지 않았습니다. 메소드를 직접 호출할 수 있습니다.

Connection.CallHTTPMethod("PUT",요청);

로그에는 동일한 내용이 표시됩니다.

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

"내가 뭔가 잘못하고 있는 게 아닐까?" - 나 자신에게 질문을 했어요. 하지만 인터넷이나 매뉴얼에는 힌트가 없었습니다. 글쎄, 아직 아무도 과학적 찌르기 방법을 취소하지 않았습니다. 우선, 나는 이렇게 하려고 했습니다:

Connection.CallHTTPMethod("fyvfyv",요청);

내가 받은 로그에서:

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

흥미롭게도 이는 1C가 PUT 방법을 구체적으로 대체한다는 것을 의미합니다(1C가 왜 그것을 좋아하지 않았습니까?).

몇 번 더 시도한 후에 나는 이것을 생각해 냈습니다.

Connection.CallHTTPMethod("PUT",요청);

내가 받은 로그에서:

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

그리고 이 옵션은 이미 사이트에서 작동했으며 모두가 만족했습니다.

그는 문제에 대한 보다 정확한 해결책을 제안했습니다. 즉, 요청 본문, 모든 본문, 심지어 비어 있는 본문을 지정해야 합니다. 예를 들어 다음 옵션이 작동합니다.

연결 = 새 HTTPConnection("www.mysite.ru"); 헤더 = 새 경기; 헤더["Content-Type"] = "application/x-www-form-urlencoded"; 요청 = 새 HTTPRequest("/api/order_items/93076?order_item=30", 헤더); Request.SetBodyFromString("",TextEncoding.UTF8, UseByteOrderMark.NotUse); 연결.쓰기(요청);

그리고 요청 본문에 매개변수 값 자체를 전달하는 것이 아마도 꽤 정확할 것입니다.

결론은 다음과 같습니다. 1C 플랫폼은 본문이 없는 PUT 요청을 잘못된 것으로 간주하고 해당 메서드를 HEAD로 대체합니다.

1C가 본문 없이 POST 요청을 추적하지 않고 GET으로 변환하지 않는 것이 궁금하여 재미로 확인해 보았습니다.

잘 알려진 Vovochka는 유명한 농담에서 다음과 같이 말했습니다. "논리는 어디에 있습니까?"

내 출판물이 누군가의 답을 찾는 데 몇 시간의 시간을 절약할 수 있기를 바랍니다. =)))

1C Enterprise 8.3 플랫폼에서는 HTTP 서비스 생성이 가능해졌습니다.

이제 내장된 언어를 사용하여 요청에 대한 응답을 생성할 수 있습니다. 동시에 본문, 헤더 및 소스 라인에 편리하게 액세스할 수 있습니다. 요구, 코드, 본문, 헤더 생성도 가능합니다. 답변귀하의 재량에 따라.

SOAP 플랫폼에서 사용 가능한 웹 서비스와 비교하여 HTTP 서비스에는 다음과 같은 여러 가지 장점이 있습니다.

  • 해당 서비스의 클라이언트 프로그래밍 용이성
  • 잠재적으로 전송되는 데이터가 적습니다.
  • 잠재적으로 계산 부하가 낮아집니다.
  • HTTP 서비스는 "리소스" 지향적인 반면 SOAP 서비스는 "작업" 지향적입니다.

데이터베이스는 http 서비스의 구현을 보여줍니다.

http-service 송장 목록

http 서비스는 URL 템플릿을 사용하고 속성 처리를 구현합니다. 매개변수URL물체 HTTP서비스요청
안에 이 예에서는작업 베이스와 기업 웹사이트 사이에 스페이서 베이스를 만드는 방법을 보여줍니다.
데모 데이터베이스 "에 연결됩니다. 무역관리 11", 먼저 "상대방" 디렉터리에 대해 이름이 있는 추가 속성을 설정해야 합니다. 웹 비밀번호 , 여기에 액세스 비밀번호를 저장합니다.
http 요청에는 로그인 및 비밀번호로 TIN이라는 URL 매개변수가 전송됩니다.
요청을 처리할 때 ComConnector를 통해 UT에 연결되고(브레이크는 보장됨) 거기에서 샘플링이 이루어집니다.
저는 이 솔루션이 빠르거나 안전하다고 생각하지 않습니다. 이는 단지 예시일 뿐입니다.

그래서. 메타데이터 트리에 새로운 분기가 나타났습니다 - HTTP 서비스
우리는 창조한다 새로운 서비스, 이름과 루트 URL(목록)을 나타냅니다.
루트 URL은 http 서비스를 호출하는 데 사용됩니다.
그런 다음 "/(로그인)/(비밀번호)"를 템플릿으로 지정하여 http 서비스에 URL 템플릿을 추가합니다.
이 템플릿을 사용하면 http 요청을 처리할 때 URL 매개변수의 해당 매개변수 구조와 해당 값을 받을 수 있습니다.
이제 URL 템플릿에 "get"이라는 메서드를 추가하고 http 메서드로 GET을 선택합니다.
핸들러를 열고 코드를 작성하세요.
메소드 핸들러는 유형의 값을 반환해야 하는 함수입니다. HTTPServiceResponse

http-service 주문 상태

이 예제에서는 POST 메서드로 전송된 변수 처리와 HTML 페이지 형식의 응답 생성을 구현합니다.
이번에는 hs가 위치한 데이터베이스에서 데이터가 샘플링되므로 이전 http 서비스보다 훨씬 빠르게 작동합니다.
작업 시스템을 구현할 때 데이터베이스에 객체를 생성하고(서비스 포함) 소스 데이터베이스에서 데이터 마이그레이션을 구성하는 것이 합리적입니다(예: 별도의 데이터베이스) 백그라운드 프로세스). http 요청을 처리할 때 샘플링은 해당 요청이 위치한 데이터베이스에서 직접 수행됩니다.

출판

웹 서버 설치 및 구성에 대한 많은 정보가 있습니다.
여기에서 httpd-2.2.25-win32-x86-openssl-0.9.8y.exe 빌드를 사용했습니다.
"Next-Next-Finish" 방법을 사용하여 설치했습니다 :)
http 서비스의 출판은 웹 서비스의 출판이 있었던 곳과 같은 장소에 위치하고 있으며 특별히 다르지 않습니다.
"구성자" 모드에서 웹 서버를 설치한 후 "관리" - "웹 서버에 게시" 메뉴로 이동합니다.
"HTTP 서비스" 탭에서 게시 이름, 웹 서버, 게시 디렉터리를 설정하고 서비스를 표시합니다(제 경우 이름은 "웹", Apache 2.2 웹 서버입니다).
게시할 때 해당 블록이 자동으로 httpd.conf 구성 파일에 기록되고 서버가 다시 시작됩니다(첫 번째 게시 시).
http 서비스 호출
예: http://mysite/web/hs/list, 어디
마이사이트– 서버 주소 (웹 서버가 로컬에 설치된 경우 127.0.0.1을 사용할 수 있습니다)
편물– 출판 중에 지정된 이름(별칭)
HS– http 서비스에서 작업이 수행될 것임을 서버에 알려주는 필수 경로 세그먼트
목록– 웹 서비스의 루트 URL

테스트

송장 목록

http://127.0.0.1/web/hs/list/7705260681/pswMP (UT에서 비밀번호에 대한 추가 속성을 설정하는 것을 잊지 마세요)

문서 등록부에 접근하기 위해 사용자는 INN과 비밀번호가 포함된 직접 링크를 사용한다고 가정합니다.

주문 상태

http://127.0.0.1/web/hs/check

요청과 응답은 동일한 URL에 있습니다. 페이지에 들어가면 GET 메소드가 트리거되어 html 양식을 반환합니다.

"확인"을 클릭하면 주문 번호가 POST 메서드를 사용하여 동일한 URL로 전송되고, 요청한 주문에 대한 데이터가 추가된 동일한 요청 양식과 함께 응답이 반환됩니다.

첨부 파일에는 1C 8.3용 데이터베이스 다운로드가 있습니다. 구성에는 2개의 http 서비스(출판물 참조), 데모 데이터베이스 UT 11과의 com 연결 설정 및 "주문" 문서가 포함됩니다.

출시 및 테스트에 필요한 것

  • 웹 서버
  • 모든 웹 브라우저
  • 현재 릴리스1C: 엔터프라이즈 8.3

다음은 서버 측에서 상대방이 있는 XML 파일을 처리하는 예입니다.

VBS 코드
require_once dirname(__FILE__) . "/../inc/initf.php" ;
Onec_Import_Customers 클래스(
개인 정적 $instance ;
함수 __construct() (

자기::$instance = $this ;

공용 함수 process() (
$rawHttp = file_get_contents("php://input");
$xml_raw = str_replace("xml=", "", $rawHttp) ;

If ($_SESSION["loggedin"] || 참)(
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", "요청" . print_r($_REQUEST, 1) . " SERVER " . print_r($_SERVER,1). " FILES " . print_r($_FILES,1) . $xml_raw) ;

//$xml = 스트립슬래시($_POST["xml"]);
$xml = 스트립슬래시($xml_raw);
if(!$xml) (
$xml = $xml_raw ;
//die ("XML 데이터 없음(게시 키 "xml")") ;
}
if ($this->setCustomers($xml)) (
die("좋아요");
) 또 다른 (
die("실패");
}
) 또 다른 (
주사위();
}
}

비공개 함수 setCustomers($xml)(
$db = db::getInstance() ;

$sxml = simplexml_load_string($xml) ;

$customers = $sxml->("Договор”) ? $sxml->("РІРѕРіРѕРІРѕСЂ") : self::err("잘못된 파일 형식입니다. 고객.") ;

$final = 배열() ;
$k = 0 ;

$allCustomers = 배열() ;

Foreach($customs를 $cust로)(
$password = base::generatePassword(6,1) ;

$arr ["password"] = $password ;

$arr ["email"] = (배열)$cust->("Почта") ;//? (array)$cust->("Почта") : self::err("잘못된 파일 형식입니다. 고객 번호:" . $k . ". 잘못된 이메일") ;
$arr ["이메일"] = $arr ["이메일"] ? $arr ["email"] : "";//: self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 이메일" ;

$arr ["app_name"] = (배열)$cust->("РќР°РеРјРμнованиРμ") ;//? (array)$cust->("РќР°РеРјРμнованиРμ") : self::err("잘못된 파일 형식입니다. 고객 번호:" . $k . ". 잘못된 이름" ;
$arr ["app_name"] = $arr ["app_name"] ? $arr ["app_name"] : "";//self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 이름") ;

$arr ["clientid"] = (array)$cust->("РќРѕРјРμСЂ") ? (array)$cust->("РќРѕРјРμСЂ") : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 클라이언트 ID" ;
$arr ["클라이언트 ID"] = $arr ["클라이언트 ID"] ? $arr ["clientid"] : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 클라이언트 ID" ;

$arr ["날짜"] = (배열)$cust->("Дата”) ? (array)$cust->("Дата") : self::err("잘못된 파일 형식입니다. 고객 번호:" . $k." ". 잘못된 날짜" ;
$arr ["날짜"] = $arr ["날짜"] ? $arr ["date"] : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 날짜" ;

$arr ["날짜"] = 폭발(".",$arr ["날짜"]);
krsort($arr ["날짜"]);
$arr ["날짜"] = implode("-",$arr ["날짜"]) . "00:00:00" ;

$arr ["phone_home"] = (배열)$cust->("РўРμР»РμфоРS") ;//? (array)$cust->("РўРμР»РμфоРС") : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 전화번호") ;
$arr ["phone_home"] = $arr ["phone_home"] ? $arr ["phone_home"] : "";//self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 전화번호" ;

$arr ["지구"] = (배열)$cust->("Р Р°РоРѕРС") ;//? (array)$cust->("Р°РоРѕРЅ") : self::err("잘못된 파일 형식입니다. 고객 번호:" . $k . ". 잘못된 구역" ;
$arr ["지구"] = $arr ["지구"] ? $arr ["district"] : "";//self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 구역" ;

$arr ["거리"] = (배열)$cust->("Улица") ;//? (array)$cust->("Улица") : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 거리") ;
$arr ["거리"] = $arr ["거리"] ? $arr ["street"] : "";//self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 거리" ;

$arr ["건물"] = (배열)$cust->("Дом”) ;//? (array)$cust->("Дом") : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 건물") ;
$arr ["건물"] = $arr ["건물"] ? $arr ["building"] : "" ;//self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 건물" ;

$arr ["아파트"] = (배열)$cust->("Квартира") ;//? (array)$cust->("Квартира") : self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 아파트") ;
$arr ["아파트"] = $arr ["아파트"] ? $arr ["아파트"] : "";// self::err("잘못된 파일 형식. 고객 번호:" . $k . ". 잘못된 아파트" ;

$allCustomers [$arr ["클라이언트 ID"]]= array("password"=>$password, "email"=>$arr ["email"]) ;

$final = $arr ;
+$k ;
}

$this->buildCustomers($final)을 반환합니다.
/*
if($this->buildCustomers($final)) (
foreach ($allCustomers as $clientid=>$data) (
self::sendPasswordToMail($data["email"], $clientid, $data["password"]) ;
}
}*/

개인 정적 함수 sendPasswordToMail($email, $client_id, $password) (
$db = db::getInstance() ;
$config = config_model::getInstance() ;
$lng = 요청::$currentLang["id"] ;
$email_text = $db->getRow("s1_text", "*", "`alias`="registration_ok" AND `lng_id`="($lng)"");
$body = str_replace("%password%", $password, $email_text["content"]) ;
$body = str_replace("%client_id%", $client_id, $body) ;
base::mailSend($body, $email_text["title"] . " - " . $config->defaultTitle("site.ru") , $email, $app["app_name"], $config->site_admin_mail( " [이메일 보호됨]"), $config->from_name("사이트")) ;

비공개 함수 buildCustomers($data)(

$db = db::getInstance() ;

$qry = "I_nsert INTO s1_customer(`active`,`password`,`app_name`,`email`, `date`, `clientid`, `phone_home`, `street`, `district`, `building`, `apartment' `) 값 " ;
foreach($data를 $row로)(
$queryArr = "(
"0"
,MD5("($rows["비밀번호">")
,"($db->escape($rows["app_name"]))"
,"($db->escape($rows["email"]))"
,"($db->escape($rows["날짜"]))"
,"($db->escape($rows["클라이언트 ID"]))"
,"($db->escape($rows["phone_home"]))"
,"($db->escape($rows["street"]))"
,"($db->escape($rows["district"]))"
,"($db->escape($rows["building"]))"
,"($db->escape($rows["아파트"]))"
)" ;
}
$qry .= implode(",", $queryArr) ;
$qry .= " 중복 키 업데이트 시
`앱_이름` = VALUES(앱_이름)
,`날짜` = VALUES(날짜)
,`이메일` = VALUES(이메일)
,`phone_home` = VALUES(phone_home)
,`거리` = VALUES(거리)
,`지구` = VALUES(지구)
,`건물` = VALUES(건물)
,`아파트` = VALUES(아파트)
" ;
$db->query($qry) 반환;
}

공용 정적 함수 getInstance())(
if (!self::$instance)
{
새로운 자기() ;
}
self::$instance 반환 ;

개인 정적 함수 err($msg) (
새로운 ImportException($msg)을 던져라;
}

클래스 ImportException은 예외를 확장합니다(

함수 __construct($msg)(
die ("오류: " . $msg) ;

플랫폼의 두 번째 버전 8부터 사용자와 개발자는 1C에서 직접 http 요청을 사용할 수 있습니다. 이 프로그램은 두 가지 유형의 쿼리를 지원합니다.

  • POST 요청;
  • GET 요청.

따라서 데이터를 교환하고 http를 통해 운영되는 웹 서비스 및 서비스와 상호 작용하기 위한 매우 편리한 도구가 만들어졌습니다.

GET 요청

물론 쿼리를 사용하는 가장 간단한 예는 여러 줄의 설명보다 쿼리 기능을 훨씬 더 잘 보여줍니다. 그럼 시도해 봅시다:

  1. 우리 사이트의 메인 페이지 본문을 가져오겠습니다.
  2. 요청을 리디렉션하는 작업을 진행하겠습니다.
  3. 사이트에서 사진을 찍어보겠습니다.

사이트 본문 가져오기

간단한 것부터 시작해 보겠습니다. 그림에서..

이 코드 섹션을 실행한 결과는 상당히 큰 텍스트이며, 그 마지막 섹션은 그림 2에 표시됩니다.

그림 2

코드의 첫 번째 줄에서는 http 리소스에 대한 연결 개체를 만듭니다. 객체에는 다음 속성이 포함될 수 있습니다.

  • 서버 - 서버 주소를 포함하는 연결 문자열입니다.
  • 포트 – 서버 포트를 나타내는 숫자가 포함되어 있으며 기본적으로 연결 유형에 따라 80을 지정할 수 있습니다. 보안되지 않은 연결또는 SSL 보안의 경우 443입니다.
  • 사용자 이름 - 서버에 대한 인증이 필요한 경우 표시됩니다.
  • 비밀번호 – 지정된 리소스에 대한 사용자 비밀번호입니다.
  • 프록시 – 프록시가 서버와 통신하는 데 사용될 때 표시되는 InternetProxy 유형의 개체를 포함할 수 있습니다.
  • 보안 연결 – 기본값은 FALSE이며, TRUE로 전환하면 https 프로토콜이 사용됨을 나타냅니다.

또한 HTTPConnection 객체에는 핸들러 실행 알고리즘을 더 완벽하게 설명할 수 있는 자체 메서드 호출이 있습니다.

  • CallHTTPmethod – 두 개의 필수 매개변수인 HTTPmethod와 HTTPrequest가 포함되어 있으며 세 번째 매개변수에 지정된 파일에 응답 본문을 쓰는 기능을 지원합니다.
  • 쓰기 – PUT 요청을 사용하여 서버에 데이터를 보냅니다.
  • 수정 – PATCH 요청을 처리하여 객체를 수정합니다.
  • SendForProcessing – 이전의 모든 메서드와 마찬가지로 POST 요청 사용을 나타내는 메서드는 요청 텍스트를 포함해야 하며 데이터 기록을 위한 응답 파일의 주소를 전송할 수도 있습니다.
  • 수신 - 이에 대해서는 아래에서 더 자세히 설명합니다.
  • GetHeadings는 기사에서 사용될 또 다른 방법입니다.
  • 삭제는 실제로 서버의 요청에 전달된 리소스를 제거하는 삭제 요청입니다.

두 번째 줄에서는 선택한 사이트에 대한 요청을 생성합니다. 요청 텍스트에는 슬래시가 하나 포함되어 있습니다. 홈페이지. 슬래시 뒤에 "page2" 또는 "news"와 같은 표현식이 오면 다른 페이지가 표시됩니다.

세 번째 줄은 서버에 대한 요청을 실행합니다.

네 번째에서는 결과를 보여줍니다.

http 요청 리디렉션 처리

프로그래밍 방식으로 검색 결과를 얻어야 하는 상황을 상상해 봅시다. 검색 엔진'1초 안에 요청'이라는 키를 사용합니다. GOOGLE에 액세스하는 데 필요한 코드 섹션은 그림 3에 나와 있습니다.

그림 3

여기에는 이미 우리에게 익숙한 구조 외에도 헤더와 상태 코드가 있습니다. 그들을 처리합시다.

상태 코드 - "의견 요청"에 지정된 표준 값은 다음 값을 사용할 수 있습니다.

  1. 모든 것이 정상이면 값은 100에서 299 사이의 범위로 반환됩니다.
  2. 리디렉션의 경우 300에서 399 범위의 코드가 반환되며, 이 경우 리소스에 대한 성공적인 영구 리디렉션은 코드 301에 의해 결정됩니다.
  3. 요청에 오류가 있는 경우 매개변수는 400에서 499 사이의 값을 갖습니다.
  4. 500-599 범위의 값은 서버에 문제가 있음을 나타냅니다.

각 페이지에는 여러 매개변수를 구별할 수 있는 텍스트의 제목이 있습니다(그림 4).

  1. 연결 다이어그램(두 개의 슬래시 "//" 앞에 오는 모든 것)
  2. 주소 표시 줄사이;
  3. 사용자 이름과 비밀번호;
  4. 연결할 포트와 호스트입니다.

이는 SplitAddressLine 함수에 의해 수행되는 분할입니다. 새 주소를 받으면 페이지를 컴퓨터에 저장하고 기본 브라우저에서 열 수 있습니다(GetPage 프로시저).

그림 5

여기에는 요청을 처리하는 새로운 기능이나 방법이 없습니다. 실제로 만들고 있습니다. 텍스트 문서사이트 본문에서 브라우저에서 페이지를 실행합니다.

파일을 D 드라이브의 루트에 배치하고 테스트라고 부릅니다.

우리는 사이트에서 이미지를 가져옵니다

자연스러운 질문이 생깁니다. 전체 사이트가 필요하지 않고 개별 요소만 확보하면 되는 경우 이를 수행할 수 있으며 어떻게 수행할 수 있습니까? 그래 넌 할수있어. 이를 수행할 수 있는 프로그램 코드는 그림 6에 나와 있습니다.

그림 6

그림에서 볼 수 있듯이 요청 본문에는 수신해야 하는 사이트 구조 요소의 코드가 있습니다. 이 부분은 이전 설명에는 없었으며 이 점에 대해 더 자세히 설명해야 합니다.

우리는 브라우저를 사용했습니다오페라 사이트에 접속합니다. 여기에는 중요한 도구가 하나 있는데, 요소를 마우스 오른쪽 버튼으로 클릭하면 다음을 호출할 수 있습니다. 상황에 맞는 메뉴, 항목 중 하나가 "요소 코드 보기"입니다.

그 덕분에 요청에 사용될 주소를 얻을 수 있었습니다. 그림 7.

POST 요청

단순한 Get 요청과 달리 POST http 요청에는 텍스트 본문이 있으며 일반 텍스트 형식이나 확장자가 xml, 비누, json인 파일 형식으로 저장할 수 있습니다. 특정 요청의 실행을 디버깅하고 모니터링할 수 있는 요청 텍스트를 생성하기 위한 도구가 네트워크에 많이 있습니다.

1C에서는 특정 텍스트로 요청을 시작하기 위해 HTTP 요청 객체에 SetBodyFromString 프로시저가 있습니다.

공유하다