Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions addons/HTTPManager/classes/HTTPManagerJob.gd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends RefCounted
class_name HTTPManagerJob

var _manager
var _manager:HTTPManager

var url:String
var request_method:int = -1
Expand Down Expand Up @@ -295,7 +295,7 @@ func dispatch( result:int, response_code:int, headers:PackedStringArray, body:Pa
if force_charset != "":
forced_charset = force_charset

var response = null
var response:BaseDecoder
var mime = ["","",""]
if response_mime.size() == 3:
mime = response_mime
Expand Down
7 changes: 4 additions & 3 deletions addons/HTTPManager/classes/decoders/application_json.gd
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
extends "res://addons/HTTPManager/classes/decoders/text.gd"
class_name ApplicationJsonDecoder
extends TextDecoder


func fetch():
var charset = response_charset
func fetch() -> Variant:
var charset := response_charset
if forced_charset != "":
charset = forced_charset
var text = as_text( charset )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
class_name BaseDecoder
extends RefCounted

var request_url:String
Expand All @@ -18,5 +19,5 @@ var response_charset:String
var forced_mime:Array[String]
var forced_charset:String

func fetch():
func fetch() -> Variant:
return response_body
9 changes: 5 additions & 4 deletions addons/HTTPManager/classes/decoders/image.gd
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
extends "res://addons/HTTPManager/classes/decoders/application_octet-stream.gd"
class_name ImageDecoder
extends BaseDecoder


func fetch():
var mime = response_mime
func fetch() -> Variant:
var mime := response_mime
if forced_mime.size() == 3:
mime = forced_mime
return as_image( mime )


func as_image( mime ):
func as_image( mime:Array ) -> Image:
var img:Image = Image.new()
match mime[2].to_lower():
"png":
Expand Down
9 changes: 5 additions & 4 deletions addons/HTTPManager/classes/decoders/image_texture.gd
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
extends "res://addons/HTTPManager/classes/decoders/image.gd"
class_name ImageTextureDecoder
extends ImageDecoder


func fetch():
func fetch() -> Variant:
return as_texture()


func as_texture():
func as_texture() -> ImageTexture:
var img = as_image( response_mime )
if img:
return ImageTexture.create_from_image(img)

return null

9 changes: 5 additions & 4 deletions addons/HTTPManager/classes/decoders/text.gd
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
extends "res://addons/HTTPManager/classes/decoders/application_octet-stream.gd"
class_name TextDecoder
extends BaseDecoder


func fetch():
var charset = response_charset
func fetch() -> Variant:
var charset := response_charset
if forced_charset != "":
charset = forced_charset
return as_text( charset )


func as_text( charset ):
func as_text( charset:String ) -> String:
match charset:
"utf-8":
return response_body.get_string_from_utf8()
Expand Down
26 changes: 15 additions & 11 deletions addons/HTTPManager/example/HTTPManager-Example.gd
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
extends Control

@export var http_manager: HTTPManager


func _on_button_pressed():
$HTTPManager.connect("completed",func(): print("all completed"))
http_manager.completed.connect(func(): print("all completed"), CONNECT_ONE_SHOT)

$HTTPManager.job("https://cdn2.thecatapi.com/images/ld.jpg").mime("image/*").on_success(func(response): print("all completed")).fetch()
http_manager.job("https://cdn2.thecatapi.com/images/ld.jpg").mime("image/*").on_success(func(response): print("all completed")).fetch()

$HTTPManager.job(
http_manager.job(
"https://de.wiktionary.org/wiki/Hilfe:Sonderzeichen/Tabelle"
).charset(
"utf-8"
).on_success_set(
$TextEdit, "text"
).fetch()

$HTTPManager.job(
http_manager.job(
"https://support.oneskyapp.com/hc/en-us/article_attachments/202761727/example_2.json"
).on_success(
func(response): print("This JSON is what i got:"); print(response.fetch())
func( response:BaseDecoder ):
print("This JSON is what i got:"); print(response.fetch())
).fetch()

$HTTPManager.job(
http_manager.job(
"https://godotengine.org/storage/blog/covers/maintenance-release-godot-4-0-2.jpg"
).on_success_set(
$TextureRect, "texture"
).mime("image/texture").fetch()

$HTTPManager.job(
http_manager.job(
"https://upload.wikimedia.org/wikipedia/commons/3/3f/Fronalpstock_big.jpg"
).on_success_set(
$TextureRect2, "texture"
).mime("image/texture").cache(false).on_success(
func( _response ): print("download finished, not from cache")
func( _response ):
print("download finished, not from cache")
).fetch()

$HTTPManager.job(
http_manager.job(
"https://this.url.is.a.failure/"
).on_success(
func( _response ): print("realy?")
Expand All @@ -44,7 +48,7 @@ func _on_button_pressed():

#--------------- use your own server here
var server = "https://www.foo.bar"
$HTTPManager.job(
http_manager.job(
server
).add_post_file(
"uploadfile_1", "res://icon.svg"
Expand All @@ -58,7 +62,7 @@ func _on_button_pressed():

# ------ A download example
#
# $HTTPManager.job(
# http_manager.job(
# "https://upload.wikimedia.org/wikipedia/commons/3/3f/Fronalpstock_big.jpg"
# ).download("C:/Users/Klaas/Downloads/video.mp4")

Expand Down
3 changes: 2 additions & 1 deletion addons/HTTPManager/example/HTTPManager-Example.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
[ext_resource type="Script" path="res://addons/HTTPManager/classes/HTTPManager.gd" id="2_o1fp1"]
[ext_resource type="Texture2D" uid="uid://bead4mo500aiv" path="res://icon.svg" id="3_ryo4l"]

[node name="HTTPManager-Example" type="Control"]
[node name="HTTPManager-Example" type="Control" node_paths=PackedStringArray("http_manager")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_2hlte")
http_manager = NodePath("HTTPManager")

[node name="HTTPManager" type="Node" parent="."]
script = ExtResource("2_o1fp1")
Expand Down