Closed Al-Muhandis closed 5 years ago
Hello @Al-Muhandis . I'm not sure about you are using in the client-side, but it seems you just need to inform the content-type. For example, if you are using fphttpclient (FPC) or NetHTTPClient (Delphi), just:
YourClient.ContentType := 'application/json';
Additional info (that will be documented soon):
ARequest.IsPost
= check if the HTTP method is POST
, PUT
, DELETE
or OPTIONS
.ARequest.IsUploading
= check if the client is sending data (HTML fields, payload data or uploaded files etc.) to the server.Hello @Al-Muhandis . I'm not sure about you are using in the client-side, but it seems you just need to inform the content-type. For example, if you are using fphttpclient (FPC) or NetHTTPClient (Delphi), just:
YourClient.ContentType := 'application/json';
Additional info (that will be documented soon):
* `ARequest.IsPost` = check if the HTTP method is `POST`, `PUT`, `DELETE` or `OPTIONS`. * `ARequest.IsUploading` = check if the client is sending data (HTML fields, payload data or uploaded files etc.) to the server.
The procedure I have is performed inside the POST
method, so it is unlikely there will be another. But in any case, I don't know where is a ARequest
? There is a property HTTPRequest
in TBrookAction
, and HTTPRequest
which does not contain these functions
Could you test it outside the webhook using curl --header "Content-Type: application/json" --request POST --data '{"abc":123}' -w "\n" http://your-host:<your-port>
? Just to check if the problem is related to Brook or the environment.
The procedure I have is performed inside the POST method, so it is unlikely there will be another.
Good news: you can use any HTTP method in the Tardigrade broker. :-)
But in any case, I don't know where is a ARequest?
They are available in the request object of Brook 5+, however, in legacy apps, you can debug to check if IsPost
is returning True
here.
I've tested all features before releasing v4.0.0, but I'll retest them again tonight.
Could you test it outside the webhook using
curl --header "Content-Type: application/json" --request POST --data '{"abc":123}' -w "\n" http://your-host:<your-port>
? Just to check if the problem is related to Brook or the environment.
The same... Empty POST data in the request
Confirmed. I'm going to check it tonight and provide a patch fixing the problem. Thanks for reporting!
@Al-Muhandis , could you try this attached experimental patch? To apply it, download Brook here, the patch 0001 and 0002, so:
git apply 0001-Removes-redundant-configuration.patch
git apply 0002-Fix-issue-161-high-CPU-activity-in-Tardigrade-based-.patch
git apply 0003-Fix-issue-163-reported-by-Al-Muhandis.patch.txt
and rebuild your application again to test if it works.
It is experimental, but should work well.
@Al-Muhandis , could you try this attached experimental patch? To apply it, download Brook here, the patch 0001 and 0002, so:
git apply 0001-Removes-redundant-configuration.patch git apply 0002-Fix-issue-161-high-CPU-activity-in-Tardigrade-based-.patch git apply 0003-Fix-issue-163-reported-by-Al-Muhandis.patch.txt
and rebuild your application again to test if it works.
It is experimental, but should work well.
Thank You very much! I applied the 2nd patch even earlier. 3rd patch just now. Now everything works!
So now I can clarify that telegram plugin does not work with tardigrade broker without 3 patch for BF 4.0
Indeed. Tonight I'm going to do some tests and move this patch to here. :-)
Tonight I'm going to do some tests and move this patch to here.
Done! Thanks @Al-Muhandis ! :smiley:
Can't get POST request data.
Legacy app 4.0.0 with tardigrade. Debian. Post data is not fields, that is string JSON Data. Before with THTTPDaemonBroker worked