Skip to content

Commit 450d9bb

Browse files
author
Roberto De Ioris
committed
fixed http api
1 parent dbbb99d commit 450d9bb

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

Source/UnrealEnginePython/Private/Http/UEPyIHttpRequest.cpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ static PyObject *py_ue_ihttp_request_set_verb(ue_PyIHttpRequest *self, PyObject
1616

1717
self->http_request->SetVerb(UTF8_TO_TCHAR(verb));
1818

19-
Py_INCREF(Py_None);
20-
return Py_None;
19+
Py_RETURN_NONE;
2120
}
2221

2322
static PyObject *py_ue_ihttp_request_set_url(ue_PyIHttpRequest *self, PyObject * args)
@@ -31,8 +30,7 @@ static PyObject *py_ue_ihttp_request_set_url(ue_PyIHttpRequest *self, PyObject *
3130

3231
self->http_request->SetURL(UTF8_TO_TCHAR(url));
3332

34-
Py_INCREF(Py_None);
35-
return Py_None;
33+
Py_RETURN_NONE;
3634
}
3735

3836
static PyObject *py_ue_ihttp_request_set_header(ue_PyIHttpRequest *self, PyObject * args)
@@ -47,8 +45,7 @@ static PyObject *py_ue_ihttp_request_set_header(ue_PyIHttpRequest *self, PyObjec
4745

4846
self->http_request->SetHeader(UTF8_TO_TCHAR(key), UTF8_TO_TCHAR(value));
4947

50-
Py_INCREF(Py_None);
51-
return Py_None;
48+
Py_RETURN_NONE;
5249
}
5350

5451
static PyObject *py_ue_ihttp_request_append_to_header(ue_PyIHttpRequest *self, PyObject * args)
@@ -63,8 +60,7 @@ static PyObject *py_ue_ihttp_request_append_to_header(ue_PyIHttpRequest *self, P
6360

6461
self->http_request->AppendToHeader(UTF8_TO_TCHAR(key), UTF8_TO_TCHAR(value));
6562

66-
Py_INCREF(Py_None);
67-
return Py_None;
63+
Py_RETURN_NONE;
6864
}
6965

7066
static PyObject *py_ue_ihttp_request_set_content(ue_PyIHttpRequest *self, PyObject * args)
@@ -90,8 +86,7 @@ static PyObject *py_ue_ihttp_request_set_content(ue_PyIHttpRequest *self, PyObje
9086
self->http_request->SetContent(data);
9187
}
9288

93-
Py_INCREF(Py_None);
94-
return Py_None;
89+
Py_RETURN_NONE;
9590
}
9691

9792
static PyObject *py_ue_ihttp_request_tick(ue_PyIHttpRequest *self, PyObject * args)
@@ -107,24 +102,21 @@ static PyObject *py_ue_ihttp_request_tick(ue_PyIHttpRequest *self, PyObject * ar
107102

108103
self->http_request->Tick(delta_seconds);
109104

110-
Py_INCREF(Py_None);
111-
return Py_None;
105+
Py_RETURN_NONE;
112106
}
113107

114108
static PyObject *py_ue_ihttp_request_process_request(ue_PyIHttpRequest *self, PyObject * args)
115109
{
116110
self->http_request->ProcessRequest();
117111

118-
Py_INCREF(Py_None);
119-
return Py_None;
112+
Py_RETURN_NONE;
120113
}
121114

122115
static PyObject *py_ue_ihttp_request_cancel_request(ue_PyIHttpRequest *self, PyObject * args)
123116
{
124117
self->http_request->CancelRequest();
125118

126-
Py_INCREF(Py_None);
127-
return Py_None;
119+
Py_RETURN_NONE;
128120
}
129121

130122
static PyObject *py_ue_ihttp_request_get_status(ue_PyIHttpRequest *self, PyObject * args)
@@ -210,6 +202,8 @@ static PyObject *py_ue_ihttp_request_bind_on_process_request_complete(ue_PyIHttp
210202
py_delegate->SetPyHttpRequest(self);
211203
self->http_request->OnProcessRequestComplete().BindSP(py_delegate, &FPythonSmartHttpDelegate::OnRequestComplete);
212204

205+
self->on_process_request_complete = py_delegate;
206+
213207
Py_RETURN_NONE;
214208
}
215209

@@ -266,6 +260,8 @@ static void ue_PyIHttpRequest_dealloc(ue_PyIHttpRequest *self)
266260
#if defined(UEPY_MEMORY_DEBUG)
267261
UE_LOG(LogPython, Warning, TEXT("Destroying ue_PyIHttpRequest %p mapped to IHttpRequest %p"), self, &self->http_request.Get());
268262
#endif
263+
self->on_process_request_complete = nullptr;
264+
self->on_request_progress = nullptr;
269265
Py_DECREF(self->py_dict);
270266
Py_TYPE(self)->tp_free((PyObject *)self);
271267
}
@@ -312,6 +308,8 @@ static int ue_py_ihttp_request_init(ue_PyIHttpRequest *self, PyObject *args, PyO
312308
return -1;
313309
}
314310
new(&self->http_request) TSharedRef<IHttpRequest>(FHttpModule::Get().CreateRequest());
311+
new(&self->on_process_request_complete) TSharedPtr<FPythonSmartHttpDelegate>(nullptr);
312+
new(&self->on_request_progress) TSharedPtr<FPythonSmartHttpDelegate>(nullptr);
315313
self->py_dict = PyDict_New();
316314
if (verb)
317315
{

Source/UnrealEnginePython/Private/Http/UEPyIHttpRequest.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@
88

99
extern PyTypeObject ue_PyIHttpBaseType;
1010

11+
class FPythonSmartHttpDelegate;
12+
1113
typedef struct
1214
{
1315
ue_PyIHttpBase base;
1416
/* Type-specific fields go here. */
1517
TSharedRef<IHttpRequest> http_request;
18+
TSharedPtr<FPythonSmartHttpDelegate> on_process_request_complete;
19+
TSharedPtr<FPythonSmartHttpDelegate> on_request_progress;
1620
PyObject *py_dict;
1721
} ue_PyIHttpRequest;
1822

19-
20-
void ue_python_init_ihttp_request(PyObject *);
21-
2223
class FPythonSmartHttpDelegate : public FPythonSmartDelegate
2324
{
2425

@@ -39,3 +40,7 @@ class FPythonSmartHttpDelegate : public FPythonSmartDelegate
3940
protected:
4041
ue_PyIHttpRequest * py_http_request;
4142
};
43+
44+
45+
46+
void ue_python_init_ihttp_request(PyObject *);

0 commit comments

Comments
 (0)