Since there is no questions category at Fab, I created this thread to replace it. This is exclusively about this plugin: HTTP Blueprint WebCommunication | Fab
Hi, i did take a look at your documentation, but i would want to be sure your plugin would cover our use case:
- Make a multipart/form-data POST & GET requests, possibly with multiple files in it.
- capacity to monitor upload & download progress on these calls
The POST and GET functions are all multipart. This means that a web server such as Apatche2 understands them. There is also a “Multi Upload POST” function for uploading several files at once. The body should look like your screenshot.
The upload progress depends on Unreal. With newer UE versions it also seems to work with POST. With UE4, upload progress may only be displayed with PUT.
In my case, I will get CSV file via Get request. Can I parse and get the data in this file using this plugin in UE?
Can I download a CSV file every 20 minutes via the HTTP protocol using this plugin?
The type of file and how often you want to download it does not matter for the plugin. You can decide that on your own. However, a CSV parser is not included. You would have to use a different plugin for this task. You could probably also do the parsing directly in Blueprints as CSV has an extremely simple structure.
Thank you for your reply!!!
Hello-
I am very interested in purchasing your plugin but was not sure it would address the challenge I’m facing. I am trying to POST to an API on a server the requires HTTPS but has a self signed cert. This causes a rejection on other unreal web communication plugins. Is there a way to ignore an invalid cert warning? I am relatively new to unreal and HTTPS requirements.
Unreal uses the cURL lib internally for http requests. My plugin is also based on this. If you send me access information by e-mail I can test it. But that does sound problematic.
Is there a reason why you want to use https? It is useless with an invalid certificate.
Thank you for the quick response! Unfortunately, I don’t have control of the API server requirements, which is why I have this odd situation with HTTPS required but invalid cert. I’ll see if I can create similar scenario to give you access. Thanks again for being so responsive.
And if you address the server without s in http then it won’t respond? Maybe try with a port in the url? So domain.com:80 or domain.com:443
HI!!
I’m trying to create a post request to upload an image to openai api for the assistant.
It should be sent in multipart/form-data.
The api looks very simple to implement, yet I’m struggling with other plugins.
https://platform.openai.com/docs/api-reference/files/create
curl https://api.openai.com/v1/files
-H “Authorization: Bearer $OPENAI_API_KEY”
-F purpose=“assistants”
-F file=“@mydata.jsonl”
Request body
file - file
The File object (not file name) to be uploaded.
purpose - string
The intended purpose of the uploaded file.
Use “assistants” for [Assistants]…
Returns
The uploaded File object.
I was advised to upload a byte array (not the base64), but this is where I don’t understand how to properly concatenate the json request with string and file as a multipart.
I appreciate your help!
Happy new year!!
Does not look unusual. Should work like this with my plugin.
My plugin does not encrypt the files with base64. There are base64 functions included but you have to execute them yourself. Otherwise binary files are sent as bytes. However, a json file is a text file, so it is simply sent as text.
Thanks for the fast reply!!!
So in the file path should be the file converted to string?
I got this error:
LogTemp: Error: UWebCommunicationBPLibrary: File not found: C:/Program Files/Epic Games/UE_5.4/Engine/Binaries/Win64/?PNG
So i’m assuming I’m doing wrong because of the file path.
If I add the correct file path, nothing happens.
Your path ends with “?PNG”. This is definitely wrong. What is the “Load File to String” function for?
If you use the “Create” and “Execute” variant, you must also add the event delegates. So add the “Complete” event. This is where the results arrive. With the Async functions, this is controlled via the pins and is then all in one. You don’t need the delegates then. See screenshot above. You can see how to create the delegates in the documentation in the download and upload category.
So the file had to be a Base64 string in a form? To be honest, that looks wrong.
The plugin actually sets the Content-Type header automatically. You overwrite this with your header. You do the same with the body. You have two times “file” here. Once with the file and once with the Base64 string. If you are satisfied it is okay. But I wouldn’t recommend other users to do the same.
I’ll implement the sequence of the code needed and check if it will work properly.
Than I’ll go back to this part and try removing each of the double entries to see the result.
Thanks for the highlight.
I’m quite lost here regarding the creation of the json structure for the Web Communication post request.
thread_message = client.beta.threads.messages.create(
"thread_abc123",
role="user",
content=[
{
"type": "text",
"text": "Here's an image example using an uploaded file."
},
{
"type": "image file",
"file_id": "file_abc123",
"detail": "auto" # optional, can be 'low', 'high', or 'auto'
}
]
)
Most probably it’s completely dumb what I’m doing here (first timer), but I appreciate if you could help!
What does the screenshot above show? It appears to be from a scripting language. This is not an http request.
I can’t tell you much about creating json because you are not using my plugin and I don’t know how other plugins work. But you can check json on https://jsoneditoronline.org/.