Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Вроде все основные функции закрыл:
- выгрузка файлов с сервера
- загрузка файлов на сервер
- HTTP GET/POST с возможностью прочитать ответ сервера
- Поддержка SSL
Тестировал на протоколах http, https, ftp, sftp, ftpes.
Краткий туториал в файле \doc\How-To.txt.
Последний раз редактировалось Дед Пахом 31 Октябрь 2020, 20:39, всего редактировалось 1 раз.
Спасибо ! А можно вопрос, я еще не долез в этом месте в описании ...
cURL реализует только операции обмена файлами ?
Можно ли получить список файлов в папке на сервере ?
Удалить файл в папке на сервере ?
Спасибо. И извиняюсь, за возможную тупость вопросов.
Вы будете смеяться, но список файлов можно получить уже сейчас, прямо в демке, надо только указать url со слэшем на конце, чтобы дать понять -- нам нужен каталог. Вот что я получил в выходном файле:
-rw-r--r-- 1 ded ded 169 Nov 12 18:58 response.txt
drwxr-x--x 2 ded ded 4096 Nov 12 18:58 .
dr-x-----x 3 ded mgrsecure 4096 Nov 11 14:29 ..
-rw------- 1 ded ded 47 Nov 11 14:31 .bash_history
Если кому интересно, открыт отдельный опенсорсный проект для работы с командной строкой curl. Запуск осуществляется через процесс, используется обычное окно с прогрессом и возможностью прерывания вместо dos-окна (как при запуске через run). Поддерживается отправка почты через ssl-соединения с прикреплением файлов. Место прописки класса:
- .SetCustomRequest method, for customizing the get command like HTTP: DELETE, TRACE and others
- .GetResponseCode method returns HTTP or FTP response code
- constants to use in .SetOpt(curlopt_constant):
- CURLOPT_HEADER throw the header out too
- CURLOPT_NOBODY use HEAD to get http document
- CURLOPT_POST HTTP POST method
- CURLOPT_DIRLISTONLY (CURLOPT_FTPLISTONLY) bare names when listing directories
- CURLOPT_APPEND Append instead of overwrite on upload!
- CURLOPT_PUT HTTP PUT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Server Error</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /opt/in/QueryPartner. Reason:
<pre> Server Error</pre></p><h3>Caused by:</h3><pre>javax.servlet.ServletException: Content-Type != multipart/form-data
at org.eclipse.jetty.server.Request.getParts(Request.java:2051)
at org.eclipse.jetty.server.Request.getPart(Request.java:2043)
at es.programador.http.ClientDocumentServlet.a(ClientDocumentServlet.java:201)
at es.programador.http.ClientDocumentServlet.doPost(ClientDocumentServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)
</pre>
<hr /><i><small>Powered by Jetty://</small></i><br/>
</body>
</html>
Я полазил по форумам пишут что при multipart/form-data
PostParams должен быть массивом.
Я так понял надо добавить '%20width%20space'
Попробовал:
PostParams ='xml_file=@client.xml%20width%20space'
И
PostParams ='data=text&xml_file=@client.xml%20width%20space'
и
PostParams ='xml_file=@client.xml%data=text%20width%20space'
Ошибка та же.