Прошу подсказок у тех кто работал с этой библиотекой:
1) (http-get url) возвращает список из 3-х элементов, третий - поток. как с ним работать?
когда я пытаюсь пользовать download-stream из того этого же пакета возникает такая ошибка -
decoding error on stream
#<SB-SYS:FD-STREAM for "a socket" {B0D9289}> (:EXTERNAL-FORMAT
:UTF-8):
the octet sequence (255 216 255 224) cannot be decoded.
[Condition of type SB-INT:STREAM-DECODING-ERROR]
у меня не получилось(no binary stream), но хотелось бы узнать можно ли использовать read-byte для этого потока. К примеру, когда посылаю GET: http://site.ru/image.gif и мне хочется прочитать байты из отданной сервером картинки.
Также в этой библиотеке есть код для загрузки картинок, но он не включён в пакет. Более того в этом файле есть свои версии http-get/post. Я делаю -
>> (load "trivial-http/pastes/download-images.fasl")
T
и я так понимаю, надо именно с этими(из download-images.lisp) http-get/post работать для загрузки картинок?.
2)
decoding error on stream
#<SB-SYS:FD-STREAM for "a socket" {C013331}> (:EXTERNAL-FORMAT
:UTF-8):
the octet sequence (229 32 115) cannot be decoded.
[Condition of type SB-INT:STREAM-DECODING-ERROR]
Backtrace:
0: (SB-INT:STREAM-DECODING-ERROR #<SB-SYS:FD-STREAM for "a socket" {C013331}> (229 32 115))
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = (229 32 115)
Собственно это то, что я упоминал в 1) . Не на всех url возникает такое, но на многих.
на всякий случай более подробная развёртка:
decoding error on stream
#<SB-SYS:FD-STREAM for "a socket" {C013331}> (:EXTERNAL-FORMAT
:UTF-8):
the octet sequence (229 32 115) cannot be decoded.
[Condition of type SB-INT:STREAM-DECODING-ERROR]
Restarts:
0: [ATTEMPT-RESYNC] Attempt to resync the stream at a character boundary and continue.
1: [FORCE-END-OF-FILE] Force an end of file.
2: [ABORT] Return to SLIME's top level.
3: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {AEEBB91}>)
Backtrace:
0: (SB-INT:STREAM-DECODING-ERROR #<SB-SYS:FD-STREAM for "a socket" {C013331}> (229 32 115))
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = (229 32 115)
1: (SB-IMPL::STREAM-DECODING-ERROR-AND-HANDLE #<SB-SYS:FD-STREAM for "a socket" {C013331}> 3)
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = 3
2: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "a socket" {C013331}> NIL :EOF)
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = NIL
SB-DEBUG::ARG-2 = :EOF
Catch-tags:
SB-IMPL::EOF-INPUT-CATCHER
3: (SB-IMPL::ANSI-STREAM-READ-CHAR #<SB-SYS:FD-STREAM for "a socket" {C013331}> NIL :EOF #<unavailable argument>)
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = NIL
SB-DEBUG::ARG-2 = :EOF
SB-DEBUG::ARG-3 = :<NOT-AVAILABLE>
4: (SB-IMPL::ANSI-STREAM-READ-SEQUENCE "
86 126 56 V
87 127 57 W
88 130 58 X
89 131 59 Y
90 132 5A Z
91 133 5B [
92 134 5C \\
93 135 5D ]
94 136 5E ^ ..)
5: (READ-SEQUENCE "
86 126 56 V
87 127 57 W
88 130 58 X
89 131 59 Y
90 132 5A Z
91 133 5B [
92 134 5C \\
93 135 5D ]
94 136 5E ^ ..)[:EXTERNAL]
6: (TRIVIAL-HTTP::COPY-STREAM #<SB-SYS:FD-STREAM for "a socket" {C013331}> #<SB-SYS:FD-STREAM for "file /home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html" {C01D5F9}>)
Locals:
SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-1 = #<SB-SYS:FD-STREAM for "file /home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html" {C01D5F9}>
7: (TRIVIAL-HTTP::DOWNLOAD-STREAM #<SB-SYS:FD-STREAM for "a socket" {C013331}> #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html")[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = 4
SB-DEBUG::ARG-1 = #<SB-SYS:FD-STREAM for "a socket" {C013331}>
SB-DEBUG::ARG-2 = #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html"
8: (TRIVIAL-HTTP:HTTP-DOWNLOAD "http://www.iu.hio.no/~mark/CTutorial/CTutorial.html" #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html")[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = 2
SB-DEBUG::ARG-1 = "http://www.iu.hio.no/~mark/CTutorial/CTutorial.html"
SB-DEBUG::ARG-2 = #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/0CTutorial.html"
9: (COPY-DATA-TO-DIR ("http://www.iu.hio.no/~mark/CTutorial/CTutorial.html") #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/")
Locals:
SB-DEBUG::ARG-0 = ("http://www.iu.hio.no/~mark/CTutorial/CTutorial.html")
SB-DEBUG::ARG-1 = #P"/home/lindie/book-library/K&R 1999 (tutorial)/data/"
10: (ADD-BOOK "K&R 1999 (tutorial)")
Locals:
SB-DEBUG::ARG-0 = "K&R 1999 (tutorial)"
ps: заранее спасибо осилившим столько букв :)