Autor Tema: Ayuda, como se usa mod_curl??  (Leído 314 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Ayuda, como se usa mod_curl??
« en: Diciembre 01, 2016, 12:24:34 pm »
hola a todos

alguien a practicado con cURL??

solo he encontrado un ejemplo dentro del pixtudio: 08_mod_curl.prg
y esta documentacion:
http://dacucar.com/pixtudiodocs/mod_curl_symbols/

en ese ejemplo lo unico que hace es descargar un fichero por protocolo HTTP

Me gustaria usar cURL para usar el protocolo FTP para mi host.
Lo basico:
-Descargar fichero
-Subir fichero
-Crear carpeta
-Listar directorio

Alguien sabe donde puedo encontrar documentacion sobre ello?

Solo encontre esto:
https://curl.haxx.se/libcurl/c/ftpget.html
https://curl.haxx.se/libcurl/c/ftpupload.html
« última modificación: Diciembre 01, 2016, 01:01:47 pm por alicesimu »

Conectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re:Ayuda, como se usa mod_curl??
« Respuesta #1 en: Diciembre 02, 2016, 02:54:16 am »
Pues la verdad es que nunca he usado esa librería pero en el Bennupack es muy posible que tengas algún ejemplo de uso.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Conectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1815
  • Karma: 244
  • Sexo: Masculino
    • Ver Perfil
Re:Ayuda, como se usa mod_curl??
« Respuesta #2 en: Diciembre 02, 2016, 06:42:07 am »
Lo mejor para descargar un archivo de un servidor es con http como en el ejemplo de curl

08_mod_curl.prg

para subir un fichero lo mejor seria usar el estandard json y subirlo mediante php

pero bueno haber si alguien hace un ejemplo de ftp en bennu...

creo que es posible meteer en la URL la clave y usuario .. ftp://username:password@hostname/

o mediante la funcion setopt

curl_easy_setopt( curl, CURLOPT_USERPWD, "username:password" );

que en bennu seria...

CURL_SETOPT(curl, CURLOPT_USERPWD, "username:password" );
curl_setopt(curl, CURLOPT_URL, "ftp.miservidor.com");

el resto tocaria probar... y que alguien se haga el ejemplo..

http://stackoverflow.com/questions/10448035/authenticating-libcurl-ftp-download-in-c
http://stackoverflow.com/questions/2162022/downloading-all-files-in-directory-using-libcurl

asi que se podria hacer un ejemplo con la curl de bennu   ;D

como aqui que especifica el directorio donde esta el fic hero

https://curl.haxx.se/libcurl/c/ftpsget.html


creo que podrias adaptatr los ejemplos facil, usando setopt para la clave y usuario
https://curl.haxx.se/libcurl/c/ftpget.html
https://curl.haxx.se/libcurl/c/ftpupload.html



aqui te dejo las declaraciones del mod_curl ...



constantes numericas:


    { "CURLOPT_VERBOSE"               , TYPE_DWORD, CURLOPT_VERBOSE                },
    { "CURLOPT_HEADER"                , TYPE_DWORD, CURLOPT_HEADER                 },
    { "CURLOPT_NOPROGRESS"            , TYPE_DWORD, CURLOPT_NOPROGRESS             },
    { "CURLOPT_NOSIGNAL"              , TYPE_DWORD, CURLOPT_NOSIGNAL               },
    { "CURLOPT_WILDCARDMATCH"         , TYPE_DWORD, CURLOPT_WILDCARDMATCH          },
    { "CURLOPT_WRITEDATA"             , TYPE_DWORD, CURLOPT_WRITEDATA              },
    { "CURLOPT_READDATA"              , TYPE_DWORD, CURLOPT_READDATA               },
    { "CURLOPT_WRITEHEADER"           , TYPE_DWORD, CURLOPT_WRITEHEADER            },
    { "CURLOPT_FAILONERROR"           , TYPE_DWORD, CURLOPT_FAILONERROR            },
    { "CURLOPT_URL"                   , TYPE_DWORD, CURLOPT_URL                    },
    { "CURLOPT_PROTOCOLS"             , TYPE_DWORD, CURLOPT_PROTOCOLS              },
    { "CURLOPT_REDIR_PROTOCOLS"       , TYPE_DWORD, CURLOPT_REDIR_PROTOCOLS        },
    { "CURLOPT_PROXY"                 , TYPE_DWORD, CURLOPT_PROXY                  },
    { "CURLOPT_PROXYPORT"             , TYPE_DWORD, CURLOPT_PROXYPORT              },
    { "CURLOPT_PROXYTYPE"             , TYPE_DWORD, CURLOPT_PROXYTYPE              },
    { "CURLOPT_NOPROXY"               , TYPE_DWORD, CURLOPT_NOPROXY                },
    { "CURLOPT_HTTPPROXYTUNNEL"       , TYPE_DWORD, CURLOPT_HTTPPROXYTUNNEL        },
    { "CURLOPT_SOCKS5_GSSAPI_SERVICE" , TYPE_DWORD, CURLOPT_SOCKS5_GSSAPI_SERVICE  },
    { "CURLOPT_SOCKS5_GSSAPI_NEC"     , TYPE_DWORD, CURLOPT_SOCKS5_GSSAPI_NEC      },
    { "CURLOPT_INTERFACE"             , TYPE_DWORD, CURLOPT_INTERFACE              },
    { "CURLOPT_LOCALPORT"             , TYPE_DWORD, CURLOPT_LOCALPORT              },
    { "CURLOPT_LOCALPORTRANGE"        , TYPE_DWORD, CURLOPT_LOCALPORTRANGE         },
    { "CURLOPT_DNS_CACHE_TIMEOUT"     , TYPE_DWORD, CURLOPT_DNS_CACHE_TIMEOUT      },
    { "CURLOPT_DNS_USE_GLOBAL_CACHE"  , TYPE_DWORD, CURLOPT_DNS_USE_GLOBAL_CACHE   },
    { "CURLOPT_BUFFERSIZE"            , TYPE_DWORD, CURLOPT_BUFFERSIZE             },
    { "CURLOPT_PORT"                  , TYPE_DWORD, CURLOPT_PORT                   },
    { "CURLOPT_TCP_NODELAY"           , TYPE_DWORD, CURLOPT_TCP_NODELAY            },
    { "CURLOPT_ADDRESS_SCOPE"         , TYPE_DWORD, CURLOPT_ADDRESS_SCOPE          },
    { "CURLOPT_NETRC"                 , TYPE_DWORD, CURLOPT_NETRC                  },
    { "CURL_NETRC_OPTIONAL"           , TYPE_DWORD, CURL_NETRC_OPTIONAL            },
    { "CURL_NETRC_IGNORED"            , TYPE_DWORD, CURL_NETRC_IGNORED             },
    { "CURL_NETRC_REQUIRED"           , TYPE_DWORD, CURL_NETRC_REQUIRED            },
    { "CURLOPT_NETRC_FILE"            , TYPE_DWORD, CURLOPT_NETRC_FILE             },
    { "CURLOPT_USERPWD"               , TYPE_DWORD, CURLOPT_USERPWD                },
    { "CURLOPT_PROXYUSERPWD"          , TYPE_DWORD, CURLOPT_PROXYUSERPWD           },
    { "CURLOPT_USERNAME"              , TYPE_DWORD, CURLOPT_USERNAME               },
    { "CURLOPT_PASSWORD"              , TYPE_DWORD, CURLOPT_PASSWORD               },
    { "CURLOPT_PROXYUSERNAME"         , TYPE_DWORD, CURLOPT_PROXYUSERNAME          },
    { "CURLOPT_PROXYPASSWORD"         , TYPE_DWORD, CURLOPT_PROXYPASSWORD          },
    { "CURLOPT_HTTPAUTH"              , TYPE_DWORD, CURLOPT_HTTPAUTH               },
    { "CURLAUTH_BASIC"                , TYPE_DWORD, CURLAUTH_BASIC                 },
    { "CURLAUTH_DIGEST"               , TYPE_DWORD, CURLAUTH_DIGEST                },
    { "CURLAUTH_DIGEST_IE"            , TYPE_DWORD, CURLAUTH_DIGEST_IE             },
    { "CURLAUTH_GSSNEGOTIATE"         , TYPE_DWORD, CURLAUTH_GSSNEGOTIATE          },
    { "CURLAUTH_NTLM"                 , TYPE_DWORD, CURLAUTH_NTLM                  },
    { "CURLAUTH_ANY"                  , TYPE_DWORD, CURLAUTH_ANY                   },
    { "CURLAUTH_ANYSAFE"              , TYPE_DWORD, CURLAUTH_ANYSAFE               },
    { "CURLAUTH_ONLY"                 , TYPE_DWORD, CURLAUTH_ONLY                  },
    { "CURLOPT_TLSAUTH_TYPE"          , TYPE_DWORD, CURLOPT_TLSAUTH_TYPE           },
    { "CURLOPT_TLSAUTH_USERNAME"      , TYPE_DWORD, CURLOPT_TLSAUTH_USERNAME       },
    { "CURLOPT_TLSAUTH_PASSWORD"      , TYPE_DWORD, CURLOPT_TLSAUTH_PASSWORD       },
    { "CURLOPT_PROXYAUTH"             , TYPE_DWORD, CURLOPT_PROXYAUTH              },
    { "CURLOPT_AUTOREFERER"           , TYPE_DWORD, CURLOPT_AUTOREFERER            },
    { "CURLOPT_FOLLOWLOCATION"        , TYPE_DWORD, CURLOPT_FOLLOWLOCATION         },
    { "CURLOPT_UNRESTRICTED_AUTH"     , TYPE_DWORD, CURLOPT_UNRESTRICTED_AUTH      },
    { "CURLOPT_MAXREDIRS"             , TYPE_DWORD, CURLOPT_MAXREDIRS              },
    { "CURLOPT_POSTREDIR"             , TYPE_DWORD, CURLOPT_POSTREDIR              },
    { "CURLOPT_PUT"                   , TYPE_DWORD, CURLOPT_PUT                    },
    { "CURLOPT_POST"                  , TYPE_DWORD, CURLOPT_POST                   },
    { "CURLOPT_POSTFIELDS"            , TYPE_DWORD, CURLOPT_POSTFIELDS             },
    { "CURLOPT_COPYPOSTFIELDS"        , TYPE_DWORD, CURLOPT_COPYPOSTFIELDS         },
    { "CURLOPT_HTTPPOST"              , TYPE_DWORD, CURLOPT_HTTPPOST               },
    { "CURLOPT_REFERER"               , TYPE_DWORD, CURLOPT_REFERER                },
    { "CURLOPT_USERAGENT"             , TYPE_DWORD, CURLOPT_USERAGENT              },
    { "CURLOPT_HTTPHEADER"            , TYPE_DWORD, CURLOPT_HTTPHEADER             },
    { "CURLOPT_COOKIE"                , TYPE_DWORD, CURLOPT_COOKIE                 },
    { "CURLOPT_COOKIEFILE"            , TYPE_DWORD, CURLOPT_COOKIEFILE             },
    { "CURLOPT_COOKIEJAR"             , TYPE_DWORD, CURLOPT_COOKIEJAR              },
    { "CURLOPT_COOKIESESSION"         , TYPE_DWORD, CURLOPT_COOKIESESSION          },
    { "CURLOPT_COOKIELIST"            , TYPE_DWORD, CURLOPT_COOKIELIST             },
    { "CURLOPT_HTTPGET"               , TYPE_DWORD, CURLOPT_HTTPGET                },
    { "CURLOPT_HTTP_VERSION"          , TYPE_DWORD, CURLOPT_HTTP_VERSION           },
    { "CURL_HTTP_VERSION_NONE"        , TYPE_DWORD, CURL_HTTP_VERSION_NONE         },
    { "CURL_HTTP_VERSION_1_0"         , TYPE_DWORD, CURL_HTTP_VERSION_1_0          },
    { "CURL_HTTP_VERSION_1_1"         , TYPE_DWORD, CURL_HTTP_VERSION_1_1          },
    { "CURLOPT_IGNORE_CONTENT_LENGTH" , TYPE_DWORD, CURLOPT_IGNORE_CONTENT_LENGTH  },
    { "CURLOPT_HTTP_CONTENT_DECODING" , TYPE_DWORD, CURLOPT_HTTP_CONTENT_DECODING  },
    { "CURLOPT_HTTP_TRANSFER_DECODING", TYPE_DWORD, CURLOPT_HTTP_TRANSFER_DECODING },

==================================================

funciones


    FUNC( "CURL_INIT"           , ""      , TYPE_INT    , bgd_curl_easy_init      ),
    FUNC( "CURL_CLEANUP"        , "I"     , TYPE_INT    , bgd_curl_easy_cleanup   ),
    FUNC( "CURL_FORMADD"        , "IISIS" , TYPE_INT    , bgd_curl_formadd        ),
    FUNC( "CURL_FORMFREE"       , "I"     , TYPE_INT    , bgd_curl_formfree       ),
    FUNC( "CURL_SETOPT"         , "III"   , TYPE_INT    , bgd_curl_easy_setopt    ),
    FUNC( "CURL_SETOPT"         , "IIS"   , TYPE_INT    , bgd_curl_easy_setopt2   ),
    FUNC( "CURL_SETOPT"         , "IIP"   , TYPE_INT    , bgd_curl_easy_setopt3   ),
    FUNC( "CURL_PERFORM"        , "IP"    , TYPE_INT    , bgd_curl_easy_perform   ),





« última modificación: Diciembre 02, 2016, 07:15:11 am por l1nk3rn3l »

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Re:Ayuda, como se usa mod_curl??
« Respuesta #3 en: Diciembre 03, 2016, 11:44:14 am »
Genial!!

cuando tenga un buen rato, trasteo, y te confirmo (estas pruebas las hago bajo Windows 10).

Gracias por darme toda la informacion!

hare pruebas con mi host. La pega de mi host que no permite descarga de ficheros por http, pide autenticación usuario ftp.

Conectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1815
  • Karma: 244
  • Sexo: Masculino
    • Ver Perfil
Re:Ayuda, como se usa mod_curl??
« Respuesta #4 en: Diciembre 03, 2016, 05:57:18 pm »
Podrias usar este para probar

https://www.biz.nf/web-hosting.php

es el que usamos para los ejemplos

ademas te dan un dominio corto como

http://coldev.co.nf/
« última modificación: Diciembre 03, 2016, 06:02:46 pm por l1nk3rn3l »

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Re:Ayuda, como se usa mod_curl??
« Respuesta #5 en: Diciembre 12, 2016, 03:51:10 pm »
Probando en android, por que no puede almacenar lo descargado en la memoria de "Data"?
debe ser si o si, en el almacenamiento externo? como tu ejemplo

Asi que copie tu ejemplo, para guardarlo en el AlmacenamientoExterno
Código: [Seleccionar]
12-13 00:35:20.693  8921  8946 E SDL/APP :  SDL msg: PixTudio init
12-13 00:35:20.772   584   605 E WindowManager: Performed 6 layouts in a row. Skipping
12-13 00:35:20.812   584  3070 E WindowManager: Performed 6 layouts in a row. Skipping
12-13 00:35:21.109  8921  8946 E SDL/APP :  SDL msg: Inicio Bennu -> Java AlmacenamientoExternoListo
12-13 00:35:21.110  8921  8946 E SDL/APP :  SDL msg: Retorno Bennu -> Java AlmacenamientoExternoListo
12-13 00:35:21.114  8921  8921 E Pixtudio: Get Android External Storage Ready: 1
12-13 00:35:22.135  8921  8946 E SDL/APP :  SDL msg: Inicio Bennu -> Java ObtenerRutaAlmacenamientoExterno
12-13 00:35:22.135  8921  8946 E SDL/APP :  SDL msg: Retorno Bennu -> Java ObtenerRutaAlmacenamientoExterno
12-13 00:35:22.141  8921  8921 E Pixtudio: Get Android External Storage Path: /storage/emulated/0
12-13 00:35:22.144  8921  8921 E SDL/APP :  SDL msg: Java->Bennu /storage/emulated/0
12-13 00:35:22.144  8921  8921 E SDL/APP :  SDL msg: Java->Bennu fase 1
12-13 00:35:22.144  8921  8921 E SDL/APP :  SDL msg: Java->Bennu fase 2 final
12-13 00:35:22.144  8921  8921 E Pixtudio: Get Android External Storage Path: FINAL
12-13 00:35:23.162  8921  8946 E SDL/APP :  SDL msg: /storage/emulated/0/4.zon
12-13 00:35:23.165  8921  8946 E SDL/APP :  SDL msg: Removed existing
12-13 00:35:24.524  8921  8946 E SDL/APP :  SDL msg: Download done!
12-13 00:35:24.527  8921  8946 E SDL/APP :  SDL msg: /storage/emulated/0/4.zon

y puede descargarlo por protocolo FTP, con usuario, contraseña:
curl_setopt(curl, CURLOPT_URL, "ftp://<user>:<passwd>@penguinpush.co.nf/penguinpush.co.nf/EDIT_ZON/"+FICHERO);

por ejemplo...

Hasta ahora es la prueba que echo bajo android, y si funciona asi.

aun no he probado que se pueda Subir un fichero.

Existe alguna manera de leer un fichero de texto ASCII linea x linea de forma directa, sin descargar todo el fichero entero???