purebasic.info

PureBasic forum
Текущее время: Вс окт 20, 2019 9:16 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Утечка памяти
СообщениеДобавлено: Чт окт 10, 2019 7:50 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
Не пойму где тут утечка :?:
За минуту не хило крутит память.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
Structure TMClass
  *vTable
  Token.s
  ErrorMsg.s
  proxy.s
EndStructure
;
Procedure.s JSONdecode(t.s) ;old procedure
  ProcedureReturn t
EndProcedure
;
Procedure.s GetHTTP(*this.TMClass, url.s)
  Protected *Buffer, Size.i, result.s
  If *this\proxy
    HTTPProxy(GetURLPart(*this\proxy,#PB_URL_Protocol) + "://" + GetURLPart(*this\proxy,#PB_URL_Site) + ":" + GetURLPart(*this\proxy,#PB_URL_Port), GetURLPart(*this\proxy,#PB_URL_User), GetURLPart(*this\proxy,#PB_URL_Password))
  EndIf
  *Buffer = ReceiveHTTPMemory(url)
  If *Buffer
    Size = MemorySize(*Buffer)
    result = PeekS(*Buffer, Size, #PB_UTF8|#PB_ByteLength)
    FreeMemory(*Buffer)
    ProcedureReturn result
  Else
    ProcedureReturn ""
  EndIf
EndProcedure
;  
Procedure.s getUpdates(*this.TMClass, offset.i, limit.i = 100, timeout.i = #False)
  Protected response.s
  response = GetHTTP(*this.TMClass, "https://api.telegram.org/bot" + *this\Token + "/getUpdates?offset=" + offset + "&limit=" + limit + "&timeout=" + timeout)
  If response <> ""
    ProcedureReturn JSONdecode(response)
  Else
    ProcedureReturn "Request Error"
  EndIf
EndProcedure
 



Может в ReceiveHTTPMemory весь сыр?
Запросы просто идут каждый 15 сек.
Боюсь представить что будет через час


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Чт окт 10, 2019 9:26 am 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 503
Благодарил (а): 34 раз.
Поблагодарили: 58 раз.
Пункты репутации: 0
Цитата:
Может в ReceiveHTTPMemory весь сыр?
А в чём проблема закомментировать её? Ну присвоить 0 и посмотреть как будет без неё.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Пт окт 11, 2019 9:08 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
С утечкой разобрался, но нашел еще проблему.

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
DeclareModule Test
  Interface Test
    Add(Name.s, Param.s = "")
    Destroy()
  EndInterface
  Declare New()
EndDeclareModule
 
Module Test
  Structure Param__
    str.s
  EndStructure
 
  Structure TestClass
    *vTable
    Map Param.Param__()
  EndStructure
  ;  
  Procedure New()
    Protected *obj.TestClass
    *obj = AllocateMemory(SizeOf(TestClass))
    If *obj
      *obj\vTable = ?vTable_TestClass
      ProcedureReturn *obj
    Else  
      ProcedureReturn -1
    EndIf
  EndProcedure
  ;  
  Procedure Add(*this.TestClass, Name.s, Param.s = "")
    If *this
;       AddMapElement(*this\Param(), Name)
      *this\Param(Name)\str = Param
    EndIf
  EndProcedure
  ;  
  Procedure Destroy(*this.TestClass)
    If *this
      FreeMemory(*this)
    EndIf
  EndProcedure
  ;  
  DataSection
    vTable_TestClass:
   data.i @Add()
    data.i @Destroy()
  EndDataSection
EndModule
 
Define Test.Test::Test
Test = Test::New()
Test\Add("US", "United Kingdom")



Вылетает ошибка:
Код:
1
2
[11:02:59] [ОШИБКА] Строка: 33
[11:02:59] [ОШИБКА] Map не инициализирован.



Как инициализировать Map?
Глобальный Map не нужен, это же подобие класса и Map должен быть локальным.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Пт окт 11, 2019 11:45 am 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 415
Благодарил (а): 5 раз.
Поблагодарили: 18 раз.
Пункты репутации: 0
Раз решение.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
 Procedure New()
    Protected *obj.TestClass
    *obj = AllocateMemory(SizeOf(TestClass))
    InitializeStructure(*obj, TestClass)
 
    If *obj
      *obj\vTable = ?vTable_TestClass
      ProcedureReturn *obj
    Else  
      ProcedureReturn -1
    EndIf
  EndProcedure

Два решение.
Код:
1
2
3
4
5
6
7
8
9
10
11
 Procedure New()
    Protected *obj.TestClass
    *obj = AllocateStructure(TestClass)
 
    If *obj
      *obj\vTable = ?vTable_TestClass
      ProcedureReturn *obj
    Else  
      ProcedureReturn -1
    EndIf
  EndProcedure

Правильное добавление, для 2 решений.
Код:
1
2
3
4
5
6
 Procedure Add(*this.TestClass, Name.s, Param.s = "")
    If *this
        AddMapElement(*this\Param(), Name)
        *this\Param()\str = Param      
     EndIf
  EndProcedure

P.S. Изучи хорошо примеры из справки.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Пт окт 11, 2019 12:19 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11536
Благодарил (а): 4 раз.
Поблагодарили: 473 раз.
Тогда Destroy должна иметь вид
Код:
1
2
3
4
5
6
Procedure Destroy(*this.TestClass)
  If *this
    ClearStructure(*this, TestClass)
    FreeMemory(*this)
  EndIf
EndProcedure

Или
Код:
1
2
3
4
5
Procedure Destroy(*this.TestClass)
  If *this
    FreeStructure(*this, TestClass)
  EndIf
EndProcedure

В зависимости от того использовалась функция InitializeStructure или AllocateStructure, иначе будет утечка памяти.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Сб окт 12, 2019 12:15 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
@ZOLO@ писал(а):
P.S. Изучи хорошо примеры из справки.

Пётр писал(а):
В зависимости от того использовалась функция InitializeStructure или AllocateStructure, иначе будет утечка памяти.

Спасибо. :oops:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Сб окт 12, 2019 8:01 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
Не могу получить полное содержимое файла.

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
 
DeclareModule Http
  Interface Http
    AddHeader(Header.s, Param.s = "")
    SetFlags(Flags.i)
    AddPost(Post.s)
    AddFormPost(Name.s, Param_or_FileName.s = "")
    Send(url.s, type.i = #PB_HTTP_Get)
    Proxy(ProxyHTTP.s)
    GetError.s()
    Clean()
    Destroy()
  EndInterface
  Declare New()
EndDeclareModule
 
Module Http
  Structure FormData__
    Param.s
    data.s
    File.i
  EndStructure
 
  Structure HttpClass
    *vTable
    ErrorMsg.s
    Post.s
    FormPost.b
    Flags.i
    Proxy.s
    Map Header$()
    Map FormData.FormData__()
  EndStructure
  ;------------New-------------  
  Procedure New()
    Protected *obj.HttpClass
    If InitNetwork()
      *obj = AllocateStructure(HttpClass)
      If *obj
        *obj\vTable = ?vTable_HttpClass
        ProcedureReturn *obj
      Else  
        ProcedureReturn -1
      EndIf
    Else  
      ProcedureReturn #False
    EndIf
  EndProcedure
  ;------------Local Procedure-------------  
  Procedure.s GetMIMEType(Extension.s)
    Extension = "." + Extension
    hKey.l = 0
    KeyValue.s = Space(255)
    datasize.l = 255
    If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, Extension, 0, #KEY_READ, @hKey)
      KeyValue = "application/octet-stream"
    Else
      If RegQueryValueEx_(hKey, "Content Type", 0, 0, @KeyValue, @datasize)
        KeyValue = "application/octet-stream"
      Else
        KeyValue = Left(KeyValue, datasize-1)
      EndIf
      RegCloseKey_(hKey)
    EndIf
    ProcedureReturn KeyValue
  EndProcedure
  ;  
  Procedure.s uniqid_()
    Protected result.s, i.l
    For i = 0 To 16
      Select Random(1)  
        Case #False
          result + Chr(Random($09)+$30) ;цифра
        Case 1
          result + Chr(Random($19)+$61) ;символ нижнего регистра
      EndSelect
    Next
    ProcedureReturn result
  EndProcedure
  ;  
  Procedure.s GenFormData(uniqid.s, Map FormData.FormData__())
    Protected Delim.s = "--------------------------" + uniqid
    Protected *MemoryID, FileID.i, Result.s
    If Not MapSize(FormData()) : ProcedureReturn "-1" : EndIf
    ForEach FormData()
      If FormData()\File
        Result + Delim + #CRLF$ + "Content-Disposition: form-data; name=" + #DQUOTE$ + MapKey(FormData()) + #DQUOTE$ + "; filename=" + #DQUOTE$ + GetFilePart(FormData()\Param) + #DQUOTE$ + #CRLF$ + "Content-Type: " + GetMIMEType(GetExtensionPart(FormData()\Param))  + #CRLF$ + #CRLF$ + FormData()\data + #CRLF$
      Else
        Result + Delim + #CRLF$ + "Content-Disposition: form-data; name=" + #DQUOTE$ + MapKey(FormData()) + #DQUOTE$ + #CRLF$ + #CRLF$ + FormData()\Param + #CRLF$
      EndIf
    Next
    result + Delim + "--" + #CRLF$
    ClearMap(FormData())
    ProcedureReturn result
  EndProcedure
  ;------------Global Procedure-------------    
  Procedure AddHeader(*this.HttpClass, Header.s, Param.s = "")
    Protected name.s
    If *this
      If Param <> ""
        name = RemoveString(Header, " ")
      Else  
        name = RemoveString(StringField(Header, 1, ":"), " ")
        param = StringField(Header, 2, ":")
      EndIf
      Repeat : param = Mid(Param, 2) : Until Mid(Param, 1, 1) <> " " Or Mid(Param, 1, 1) = ""
      *this\Header$(name) = param
      ProcedureReturn #True
    EndIf
  EndProcedure
  ;  
  Procedure SetFlags(*this.HttpClass, Flags.i)
    If *this
      *this\Flags = Flags
      ProcedureReturn #True
    EndIf
  EndProcedure
  ;  
  Procedure AddPost(*this.HttpClass, Post.s)
    If *this
      If MapSize(*this\FormData()) : *this\ErrorMsg = "FormPost() not Null Size, use Clean()" : ProcedureReturn #False : EndIf
      *this\post + Post + #CRLF$
      ProcedureReturn #True
    EndIf
  EndProcedure
  ;      
  Procedure AddFormPost(*this.HttpClass, Name.s, Param_or_FileName.s = "")
    Protected FileID.i, *MemoryID, length.i, Format.i, bytes.i, temp.s
    If *this
      If *this\post <> "" : *this\post = "" : EndIf
      If Name = "" : ProcedureReturn #False : EndIf
      If FileSize(Param_or_FileName) > 0
        FileID = ReadFile(#PB_Any, Param_or_FileName)
        If FileID
          length = Lof(FileID)                            ; получаем длину открытого файла
          *MemoryID = AllocateMemory(length)              ; выделяем необходимую память
          temp = Space(length)
          If *MemoryID
            Format = ReadStringFormat(FileID)
            bytes = ReadData(FileID, @temp, length)
          Else  
            CloseFile(FileID)
            ProcedureReturn -2
          EndIf
          If bytes
            *this\FormData(Name)\Param = Param_or_FileName
            *this\FormData(Name)\File  = #True
            *this\FormData(Name)\data  = PeekS(*MemoryID, bytes, Format)
          EndIf
          FreeMemory(*MemoryID)
          CloseFile(FileID)
        Else  
          ProcedureReturn -1
        EndIf
      Else
        AddMapElement(*this\FormData(),Name)
        *this\FormData()\Param = Param_or_FileName
      EndIf
      ProcedureReturn #True
    EndIf
  EndProcedure
  ;  
  Procedure Send(*this.HttpClass, url.s, type.i = #PB_HTTP_Get)
    Protected uniqid.s
    If *this
      If MapSize(*this\FormData()) And type = #PB_HTTP_Post
        uniqid = uniqid_()
        AddHeader(*this, "Content-Type", "multipart/form-data; boundary=------------------------" + uniqid)
        *this\Post = GenFormData(uniqid, *this\FormData())
        *this\FormPost = #True
      EndIf
      Debug *this\Post
    EndIf
  EndProcedure
  ;    
  Procedure Proxy(*this.HttpClass, ProxyHTTP.s)
    If GetURLPart(ProxyHTTP, #PB_URL_Protocol) = ""
      *this\ErrorMsg = "Не правильный Proxy." + #CRLF$ + "http(s)|socks5://Login:pass@IP|hostname:Port" + #CRLF$ + "Example -> http://test:test@1.1.1.1:1080 Или socks5://1.1.1.1:1080 если Proxy без авторизации"
      ProcedureReturn #False
    Else  
      *this\proxy = ProxyHTTP
    EndIf
  EndProcedure
  ;  
  Procedure.s GetError(*this.HttpClass)
    Protected Result.s
    If *this
      Result = *this\ErrorMsg
      *this\ErrorMsg = ""
      ProcedureReturn Result
    EndIf
  EndProcedure
  ;  
  Procedure Clean(*this.HttpClass)
    Protected *vTable
    If *this
      *vTable = *this\vTable
      ResetStructure(*this, HttpClass)
      *this\vTable = *vTable
      ProcedureReturn #True
    EndIf
  EndProcedure
  ;  
  Procedure Destroy(*this.HttpClass)
    If *this
      FreeStructure(*this.HttpClass)
    EndIf
  EndProcedure
  ;  
  DataSection
    vTable_HttpClass:
   data.i @AddHeader()
    data.i @SetFlags()
    data.i @AddPost()
    data.i @AddFormPost()
    data.i @Send()
    data.i @Proxy()
    data.i @GetError()
    data.i @Clean()
    data.i @Destroy()
  EndDataSection
EndModule
 
Define Test.Http::Http
Test = Http::New()
Test\AddFormPost("photo", "E:\S.jpg")
Test\Send("",#PB_HTTP_Post)
 



Вложение:
S.jpg [59.22 KiB]
Скачиваний: 0


Итог:
Код:
1
2
3
4
5
6
7
8
 
--------------------------zt13xw0754l9ta8ea
Content-Disposition: form-data; name="photo"; filename="S.jpg"
Content-Type: image/jpeg
 
яШяа
--------------------------zt13xw0754l9ta8ea--
 



Curl нормально берет содержимое, а через PB не могу заполнить Post.
Хотелось бы использовать встроенные функции а не Curl и не таскать за собой dll.
Подкиньте пример. :idea:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Сб окт 12, 2019 9:03 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11536
Благодарил (а): 4 раз.
Поблагодарили: 473 раз.
С каких пор картинка имеет текстовый формат? Она бинарная! А в коде ее содержимое помещается в текстовую переменную.
Далее что делает эта строка?
Код:
1
*this\FormData(Name)\data  = PeekS(*MemoryID, bytes, Format)

В *MemoryID нет данных. Если подразумевалось что в памяти картинка, то разве она имеет текстовый формат?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Сб окт 12, 2019 2:04 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
Пётр писал(а):
. Если подразумевалось что в памяти картинка, то разве она имеет текстовый формат?

Мне надо бинарные данные вложить в post запрос


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Вс окт 13, 2019 6:57 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 895
Благодарил (а): 95 раз.
Поблагодарили: 26 раз.
Пункты репутации: 5
Ste1nS писал(а):
Мне надо бинарные данные вложить в post запрос

для этого base64 имеется, аж две версии
Base64Decoder
Base64DecoderBuffer
Base64Encoder
Base64EncoderBuffer


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Вс окт 13, 2019 8:17 am 
Не в сети
ассистент

Зарегистрирован: Сб фев 02, 2019 9:46 pm
Сообщений: 17
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Ste1nS писал(а):
Запросы просто идут каждый 15 сек.

Используй long poll!

Ste1nS писал(а):
Код:
1
2
3
4
5
6
7
8
 
--------------------------zt13xw0754l9ta8ea
Content-Disposition: form-data; name="photo"; filename="S.jpg"
Content-Type: image/jpeg
 
яШяа
--------------------------zt13xw0754l9ta8ea--
 





Если шлешь в телегу, то между Boundary и Content-Disposition надо правильно вставить параметры. Чат айди обязательный, а описание, кнопки и т.п. добавляются аналогично, типа
Код:
1
2
3
4
5
6
7
8
 
  Begin.s = "--------------Boundary" + #CRLF$
   ...
  Begin.s + ~"Content-Disposition: form-data; name=\"chat_id\"" + #CRLF$ + #CRLF$  
  Begin.s +  ChatId  + #CRLF$
  Begin.s + "--------------Boundary" + #CRLF$
   ...
  Begin.s + ~"Content-Disposition: form-data; name=\"photo\";......



А, ну и по опыту скажу, что хттп либа у пб может рандомно подвисать и не отправлять запрос, это хорошо заметно, когда пачкой отправляешь файлы и приходят не все. А вот вининет или винхттп такой херней не болеют.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Вс окт 13, 2019 1:55 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пт дек 26, 2014 3:27 pm
Сообщений: 62
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
newJS писал(а):
для этого base64 имеется, аж две версии
Base64Decoder
Base64DecoderBuffer
Base64Encoder
Base64EncoderBuffer


Я не пробовал конечно, но мне кажется не примет Телеграмм файл в Base64.

zonix писал(а):
Если шлешь в телегу, то между Boundary и Content-Disposition надо правильно вставить параметры. Чат айди обязательный, а описание, кнопки и т.п. добавляются аналогично, типа


Я и так знаю как отсылать запросы в телеграмм, у меня есть готовая библиотека для работы с Telegram на curl.
Мне надо просто избавиться от Curl и перейти на встроенные функции Purebasic'a для отправки Post-запросов


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Вс окт 13, 2019 5:01 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11536
Благодарил (а): 4 раз.
Поблагодарили: 473 раз.
Нужно выделить память необходимого размера. Далее записать туда
Код:
1
2
3
--------------------------zt13xw0754l9ta8ea
Content-Disposition: form-data; name="photo"; filename="S.jpg"
Content-Type: image/jpeg

После картинку в бинарном виде и после нее
Код:
1
--------------------------zt13xw0754l9ta8ea--

И отправить эту функцией HTTPRequestMemory.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Вс окт 13, 2019 10:02 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 330
Благодарил (а): 14 раз.
Поблагодарили: 40 раз.
Пункты репутации: 2
Ste1nS писал(а):
Мне надо просто избавиться от Curl и перейти на встроенные функции Purebasic'a для отправки Post-запросов
Так "встроенные функции Purebasic'a" для HTTPS, вроде как (я ничего не утверждаю), именно Curl и используют. А то, что в разделе Network с HTTPS не дружит. Возможно, я безнадежно устарел со своим 5.31 :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Утечка памяти
СообщениеДобавлено: Пн окт 14, 2019 12:19 pm 
Не в сети
ассистент

Зарегистрирован: Сб фев 02, 2019 9:46 pm
Сообщений: 17
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
repeat писал(а):
Так "встроенные функции Purebasic'a" для HTTPS, вроде как (я ничего не утверждаю), именно Curl и используют. А то, что в разделе Network с HTTPS не дружит. Возможно, я безнадежно устарел со своим 5.31 :)

Дружит и дружит на сокетах. Но что там может занимать почти 200кб? Какой-то уж больно жирный друг получается, и не поворотливый :?

Ste1nS писал(а):
Я и так знаю как отсылать запросы в телеграмм, у меня есть готовая библиотека для работы с Telegram на curl.

Видимо не знаешь, ежели картинку в строку загоняешь :lol:
На любой платформе запросы на хттп сервер формируются и отправляются по одним и тем же принципам


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB