POST request from 1C

The 1C:Enterprise developers forum

#1
People who like this:0Yes/0No
Active user
Rating: 8
Joined: May 21, 2023
Company:

Is there a way to do a http POST request to another web address from 1C?

 
#2
People who like this:0Yes/0No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Hello Peter,

of course it's possible. This is the basic functionality of 1C.

Here you can find an example of working with the POST method: https://1c-dn.com/blog/work-with-http-services-in-1c-part-2-post-method/

 
#3
People who like this:0Yes/0No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Or here is the working code for working with Shopify:

Code
&AtServer
Function CreateOneProduct(structureBody)
   
   ReturnParameters = New Structure;
   
   ReturnParameters.Insert("Result");
   ReturnParameters.Insert("Error",   False);
   
   stringAPI_PATH = TrimAll(Constants.Shopify_PathToAPI.Get());
   
   HTTPConnection = New HTTPConnection(stringAPI_PATH,443,,,,, New OpenSSLSecureConnection);
   
   ResourceAddress = "/admin/api/2022-07/products.json";
      
        HTTPRequest = New HTTPRequest();
   
   HTTPRequest.ResourceAddress = ResourceAddress;
   
   HTTPRequest.Headers.Insert("Content-Type",       "application/json");
   HTTPRequest.Headers.Insert("X-Shopify-Access-Token",    Constants.Shopify_API_Access_Token.Get()); 
   
   JSONWriter = New JSONWriter;
   JSONWriter.SetString();
   WriteJSON(JSONWriter, structureBody);
   resultJSON = JSONWriter.Close();
   
   HTTPRequest.SetBodyFromString(resultJSON);
   HTTPResponse = HTTPConnection.Post(HTTPRequest);
   
   If HTTPResponse.StatusCode = 201 Then
      
       JSONReader = New JSONReader;
       JSONReader.SetString(HTTPResponse.GetBodyAsString());
       ReturnParameters.Result = ReadJSON(JSONReader, False);
      
   Else 
      ReturnParameters.Result = HTTPResponse.GetBodyAsString();
      ReturnParameters.Error = True;
   EndIf;
   
   Return ReturnParameters;
   
EndFunction

 
#4
People who like this:0Yes/0No
Active user
Rating: 8
Joined: May 21, 2023
Company:

Thanks, Alex!

And HTTPRequest parameters are passed through structureBody?

 
#5
People who like this:0Yes/0No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

No not like this :-)

structureBody is the structure in which the order data is stored. This structure is converted to a JSON file:

Code
   JSONWriter = New JSONWriter;

   JSONWriter.SetString();

   WriteJSON(JSONWriter, structureBody);

   resultJSON = JSONWriter.Close();



resultJSON is a ready-made JSON file to be sent to the server.

And the parameters for HTTPRequest are set here:


Code
   HTTPRequest = New HTTPRequest();

   
   HTTPRequest.ResourceAddress = ResourceAddress;

   

   HTTPRequest.Headers.Insert("Content-Type",       "application/json");

   HTTPRequest.Headers.Insert("X-Shopify-Access-Token",    Constants.Shopify_API_Access_Token.Get()); 

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.